This patchset removes uses of struct page from the I/O paths of JFS. write_begin and write_end are still passed a struct page, but they convert to a folio as their first thing. The logmgr still uses a struct page, but I think that's one we actually don't want to convert since it's never inserted into the page cache. I've included the removal of i_blocks_per_page() in this series as JFS is the last user. Tested with xfstests; some failures observed, but they don't seem to be related to these patches. I haven't tried with PAGE_SIZE > 4kB, so the MPS_PER_PAGE > 1 paths are untested. Matthew Wilcox (Oracle) (13): jfs: Convert metapage_read_folio to use folio APIs jfs: Convert metapage_writepage to metapage_write_folio jfs: Convert __get_metapage to use a folio jfs: Convert insert_metapage() to take a folio jfs; Convert release_metapage to use a folio jfs: Convert drop_metapage and remove_metapage to take a folio jfs: Convert dec_io to take a folio jfs; Convert __invalidate_metapages to use a folio jfs: Convert page_to_mp to folio_to_mp jfs: Convert inc_io and mp_anchor to take a folio jfs: Convert force_metapage to use a folio jfs: Change metapage->page to metapage->folio fs: Remove i_blocks_per_page fs/jfs/jfs_logmgr.c | 2 +- fs/jfs/jfs_metapage.c | 298 ++++++++++++++++++++-------------------- fs/jfs/jfs_metapage.h | 16 +-- include/linux/pagemap.h | 6 - 4 files changed, 155 insertions(+), 167 deletions(-) -- 2.43.0