From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> In order to support large pages in the page cache, filesystems have to understand that they're being passed a large page and read or write the entire large page, rather than just the first page. This pair of patches adds that support to XFS. Still untested beyond compilation. v2: - Added a few helpers per Dave Chinner's suggestions - Use GFP_ZERO instead of individually zeroing each field of iop - Rewrite iomap_set_range_uptodate() to use bitmap functions instead of individual bit operations - Drop support for large pages being used for files with inline data (it didn't work anyway, because kmap_atomic() is only going to map the first page of a compound page) - Pass a struct page to xfs_finish_page_writeback instead of the bvec Matthew Wilcox (Oracle) (5): fs: Introduce i_blocks_per_page mm: Add file_offset_of_ helpers iomap: Support large pages xfs: Support large pages xfs: Pass a page to xfs_finish_page_writeback fs/iomap/buffered-io.c | 121 ++++++++++++++++++++++++++-------------- fs/jfs/jfs_metapage.c | 2 +- fs/xfs/xfs_aops.c | 37 ++++++------ include/linux/iomap.h | 2 +- include/linux/mm.h | 2 + include/linux/pagemap.h | 38 ++++++++++++- 6 files changed, 135 insertions(+), 67 deletions(-) -- 2.23.0.rc1