Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > + /* Prevent new folios from being added to the inode. */ > > + filemap_invalidate_lock(mapping); > > I'm kind of surprised that the callers wouldn't want to hold that lock > over a call to this function. I guess you're working on the callers, > so you'd know better than I would, but I would have used lockdep to > assert that invalidate_lock was held. I'm not sure. None of the places that look like they'd be calling this currently take that lock (though possibly they should). Also, should I provide it with explicit range, I wonder? > > + if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap.rb_root))) > > + unmap_mapping_pages(mapping, 0, ULONG_MAX, false); > > Is this optimisation worth it? Perhaps not. David