In looking at removing ->launder_folio() altogether, I noticed that FUSE relies on it to write back dirty folios by calling invalidate_inode_pages2() or invalidate_inode_pages2_range() directly. I have formed an opinion that neither of these APIs should be exported to modules; modules should be forced to use filemap_invalidate_pages() instead. It's more efficient because it does the writeback all-at-once. There are other filesystems which use those APIs (notably btrfs), so they're not going away immediately, but I thought I'd get some feedback on this step before I go any further. Matthew Wilcox (Oracle) (1): fuse: Use filemap_invalidate_pages() fs/fuse/dax.c | 16 ++++------------ fs/fuse/dir.c | 12 +++++++----- fs/fuse/file.c | 16 +++++----------- fs/fuse/inode.c | 17 +++++------------ 4 files changed, 21 insertions(+), 40 deletions(-) -- 2.47.2