On Wed, Feb 10, 2021 at 05:14:32PM -0500, Josef Bacik wrote:
> v1->v2:
> - Rebase against misc-next.
> - Add Filipe's reviewed-bys.
> 
> --- Original email ---
> 
> Hello,
> 
> Both Filipe and I have found different issues that result in the same thing, 
> we
> need to be able to exclude mmap from happening in certain scenarios.  The
> specifics are well described in the commit logs, but generally there's 2 
> issues
> 
> 1) dedupe needs to validate that pages match, and since the validation is done
>    outside of the extent lock we can race with mmap and dedupe pages that do 
> not
>    match.
> 2) We can deadlock in certain low metadata scenarios where we need to flush
>    an ordered extent, but can't because mmap is holding the page lock.
> 
> These issues exist for remap and fallocate, so add an i_mmap_sem to allow us 
> to
> disallow mmap in these cases.  I'm still waiting on xfstests to finish with
> this, but 2 hours in and no lockdep or deadlocks.  Thanks,
> 
> Josef Bacik (4):
>   btrfs: add a i_mmap_lock to our inode
>   btrfs: cleanup inode_lock/inode_unlock uses
>   btrfs: exclude mmaps while doing remap
>   btrfs: exclude mmap from happening during all fallocate operations

Added as a topic branch to for-next.

Reply via email to