On Fri, May 18, 2018 at 06:13:06AM -0700, Matthew Wilcox wrote: > > Historically, the only problematic case has been direct IO, and people > > have been willing to say "well, if you mix buffered and direct IO you > > get what you deserve", and that's probably not unreasonable. But now we > > have fallocate insert range and collapse range, and those are broken in > > ways I frankly don't want to think about if they can't ensure consistency > > with the page cache. > > ext4 manages collapse-vs-pagefault with the ext4-specific i_mmap_sem. > You may get pushback on the grounds that this ought to be a > filesystem-specific lock rather than one embedded in the generic inode. Honestly I think this probably should be in the core. But IFF we move it to the core the existing users of per-fs locks need to be moved over first. E.g. XFS as the very first one, and at least ext4 and f2fs that copied the approach, and probably more if you audit deep enough.