[PATCH v2 0/5] iomap & xfs support for large pages

Matthew Wilcox
2019-08-21T00:30:49Z

From: "Matthew Wilcox (Oracle)" <willy@infradead.org>

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