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.