mbox series

[00/21] iomap/xfs folio patches

Message ID 20211101203929.954622-1-willy@infradead.org (mailing list archive)
Headers show
Series iomap/xfs folio patches | expand

Message

Matthew Wilcox Nov. 1, 2021, 8:39 p.m. UTC
This patchset converts XFS & iomap to use folios, and gets them to
a state where they can handle multi-page folios.  I don't anticipate
needing to touch XFS again until we're at the point where we want to
convert the aops to be type-safe.  The patches apply to both current
Linus head and next-20211101.  It completes an xfstests run with no
unexpected failures.  Most of these patches have been posted before and
I've retained acks/reviews where I thought them reasonable.  Some are new.

I'd really like a better name than 'mapping_set_large_folios()'.
mapping_set_multi_page_folios() seems a bit long.  mapping_set_mpf()
is a bit obscure.

Jens, I'd really like your ack on patches 2 & 3; I know we discussed
them before.

Matthew Wilcox (Oracle) (21):
  fs: Remove FS_THP_SUPPORT
  block: Add bio_add_folio()
  block: Add bio_for_each_folio_all()
  iomap: Convert to_iomap_page to take a folio
  iomap: Convert iomap_page_create to take a folio
  iomap: Convert iomap_page_release to take a folio
  iomap: Convert iomap_releasepage to use a folio
  iomap: Add iomap_invalidate_folio
  iomap: Pass the iomap_page into iomap_set_range_uptodate
  iomap: Convert bio completions to use folios
  iomap: Use folio offsets instead of page offsets
  iomap: Convert iomap_read_inline_data to take a folio
  iomap: Convert readahead and readpage to use a folio
  iomap: Convert iomap_page_mkwrite to use a folio
  iomap: Convert iomap_write_begin and iomap_write_end to folios
  iomap: Convert iomap_write_end_inline to take a folio
  iomap,xfs: Convert ->discard_page to ->discard_folio
  iomap: Convert iomap_add_to_ioend to take a folio
  iomap: Convert iomap_migrate_page to use folios
  iomap: Support multi-page folios in invalidatepage
  xfs: Support multi-page folios

 Documentation/core-api/kernel-api.rst |   1 +
 block/bio.c                           |  22 ++
 fs/inode.c                            |   2 -
 fs/iomap/buffered-io.c                | 499 +++++++++++++-------------
 fs/xfs/xfs_aops.c                     |  24 +-
 fs/xfs/xfs_icache.c                   |   2 +
 include/linux/bio.h                   |  56 ++-
 include/linux/fs.h                    |   1 -
 include/linux/iomap.h                 |   3 +-
 include/linux/pagemap.h               |  16 +
 mm/shmem.c                            |   3 +-
 11 files changed, 366 insertions(+), 263 deletions(-)