This patch series does most of the page->folio conversions needed in nilfs2. I haven't done the work to support large folios in nilfs2; I don't know if that conversion will be worth the effort. There are still a few page uses left, but the infrastructure isn't quite there to get rid of them yet. Arguably, this is two separate series; the first takes care of the file paths and the second takes care of directories. I've tried my best to include large folio support in the directory code because it'll be needed for large block size devices. It also tries to stay as close as possible to the current ext2 code (so it also includes kmap_local support). These patches are only compile-tested. xfstests doesn't seem to know about nilfs2. Matthew Wilcox (Oracle) (35): nilfs2: Add nilfs_end_folio_io() nilfs2: Convert nilfs_abort_logs to use folios nilfs2: Convert nilfs_segctor_complete_write to use folios nilfs2: Convert nilfs_forget_buffer to use a folio nilfs2: Convert to nilfs_folio_buffers_clean() nilfs2: Convert nilfs_writepage() to use a folio nilfs2: Convert nilfs_mdt_write_page() to use a folio nilfs2: Convert to nilfs_clear_folio_dirty() nilfs2: Convert to __nilfs_clear_folio_dirty() nilfs2: Convert nilfs_segctor_prepare_write to use folios nilfs2: Convert nilfs_page_mkwrite() to use a folio nilfs2: Convert nilfs_mdt_create_block to use a folio nilfs2: Convert nilfs_mdt_submit_block to use a folio nilfs2: Convert nilfs_gccache_submit_read_data to use a folio nilfs2: Convert nilfs_btnode_create_block to use a folio nilfs2: Convert nilfs_btnode_submit_block to use a folio nilfs2: Convert nilfs_btnode_delete to use a folio nilfs2: Convert nilfs_btnode_prepare_change_key to use a folio nilfs2: Convert nilfs_btnode_commit_change_key to use a folio nilfs2: Convert nilfs_btnode_abort_change_key to use a folio nilfs2: Remove page_address() from nilfs_set_link nilfs2: Remove page_address() from nilfs_add_link nilfs2: Remove page_address() from nilfs_delete_entry nilfs2: Return the mapped address from nilfs_get_page() nilfs2: Pass the mapped address to nilfs_check_page() nilfs2: Switch to kmap_local for directory handling nilfs2: Add nilfs_get_folio() nilfs2: Convert nilfs_readdir to use a folio nilfs2: Convert nilfs_find_entry to use a folio nilfs2: Convert nilfs_rename() to use folios nilfs2: Convert nilfs_add_link() to use a folio nilfs2: Convert nilfs_empty_dir() to use a folio nilfs2: Convert nilfs_make_empty() to use a folio nilfs2: Convert nilfs_prepare_chunk() and nilfs_commit_chunk() to folios nilfs2: Convert nilfs_page_bug() to nilfs_folio_bug() fs/nilfs2/btnode.c | 62 +++++------ fs/nilfs2/dir.c | 248 ++++++++++++++++++++------------------------ fs/nilfs2/file.c | 28 ++--- fs/nilfs2/gcinode.c | 4 +- fs/nilfs2/inode.c | 11 +- fs/nilfs2/mdt.c | 23 ++-- fs/nilfs2/namei.c | 33 +++--- fs/nilfs2/nilfs.h | 20 ++-- fs/nilfs2/page.c | 93 +++++++++-------- fs/nilfs2/page.h | 12 +-- fs/nilfs2/segment.c | 157 ++++++++++++++-------------- 11 files changed, 338 insertions(+), 353 deletions(-) -- 2.42.0