This is (almost) everything necessary to support folios in iomap.
No regressions with an xfstests run on my setup.
v15:
- Turn the / PAGE_SIZE into >> PAGE_SHIFT, as requested by Darrick
- Modify the for loop to be in Darrick's preferred form
- Improve documentation of bio_add_folio()
- Add documentation for bio_for_each_folio_all() and folio_iter
- Add bio.h to the generated kernel-doc
- Rebase on top of folio for-next (which includes the iomap changes in -rc2)
https://git.infradead.org/users/willy/pagecache.git/shortlog/refs/heads/for-next
Matthew Wilcox (Oracle) (17):
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: Convert iomap_invalidatepage to use a folio
iomap: Pass the iomap_page into iomap_set_range_uptodate
iomap: Use folio offsets instead of page offsets
iomap: Convert bio completions to use folios
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_read_inline_data to take a folio
iomap: Convert iomap_write_end_inline to take a folio
iomap: Convert iomap_add_to_ioend to take a folio
iomap: Convert iomap_migrate_page to use folios
Documentation/core-api/kernel-api.rst | 1 +
block/bio.c | 21 ++
fs/iomap/buffered-io.c | 511 +++++++++++++-------------
include/linux/bio.h | 56 ++-
4 files changed, 327 insertions(+), 262 deletions(-)
--
2.30.2