mbox series

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

Message ID 20190821003039.12555-1-willy@infradead.org (mailing list archive)
Headers show
Series iomap & xfs support for large pages | expand

Message

Matthew Wilcox Aug. 21, 2019, 12:30 a.m. UTC
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(-)