I plan to submit these patches through my pagecache tree in the upcoming merge window. I'm pretty happy that most filesystems are now using common code for ->migrate_folio; it's not something that most filesystem people want to care about. I'm running xfstests using xfs against it now, but it's little more than compile tested for other filesystems. Matthew Wilcox (Oracle) (20): fs: Add aops->migrate_folio mm/migrate: Convert fallback_migrate_page() to fallback_migrate_folio() mm/migrate: Convert writeout() to take a folio mm/migrate: Convert buffer_migrate_page() to buffer_migrate_folio() mm/migrate: Convert expected_page_refs() to folio_expected_refs() btrfs: Convert btree_migratepage to migrate_folio nfs: Convert to migrate_folio mm/migrate: Convert migrate_page() to migrate_folio() mm/migrate: Add filemap_migrate_folio() btrfs: Convert btrfs_migratepage to migrate_folio ubifs: Convert to filemap_migrate_folio() f2fs: Convert to filemap_migrate_folio() aio: Convert to migrate_folio hugetlb: Convert to migrate_folio balloon: Convert to migrate_folio secretmem: Convert to migrate_folio z3fold: Convert to migrate_folio zsmalloc: Convert to migrate_folio fs: Remove aops->migratepage() mm/folio-compat: Remove migration compatibility functions Documentation/filesystems/locking.rst | 5 +- Documentation/filesystems/vfs.rst | 13 +- Documentation/vm/page_migration.rst | 33 +-- block/fops.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 4 +- fs/aio.c | 36 ++-- fs/btrfs/disk-io.c | 22 +- fs/btrfs/inode.c | 26 +-- fs/ext2/inode.c | 4 +- fs/ext4/inode.c | 4 +- fs/f2fs/checkpoint.c | 4 +- fs/f2fs/data.c | 40 +--- fs/f2fs/f2fs.h | 4 - fs/f2fs/node.c | 4 +- fs/gfs2/aops.c | 2 +- fs/hugetlbfs/inode.c | 19 +- fs/iomap/buffered-io.c | 25 --- fs/nfs/file.c | 4 +- fs/nfs/internal.h | 6 +- fs/nfs/write.c | 16 +- fs/ntfs/aops.c | 6 +- fs/ocfs2/aops.c | 2 +- fs/ubifs/file.c | 29 +-- fs/xfs/xfs_aops.c | 2 +- fs/zonefs/super.c | 2 +- include/linux/buffer_head.h | 10 + include/linux/fs.h | 18 +- include/linux/iomap.h | 6 - include/linux/migrate.h | 22 +- include/linux/pagemap.h | 6 + mm/balloon_compaction.c | 15 +- mm/compaction.c | 5 +- mm/folio-compat.c | 22 -- mm/ksm.c | 2 +- mm/migrate.c | 217 ++++++++++++-------- mm/migrate_device.c | 3 +- mm/secretmem.c | 6 +- mm/shmem.c | 2 +- mm/swap_state.c | 2 +- mm/z3fold.c | 8 +- mm/zsmalloc.c | 8 +- 41 files changed, 287 insertions(+), 379 deletions(-) -- 2.35.1