This v2 addresses feedback from the first RFC on enabling bs > ps for block devices [0] after which I split the async read buffer-head work into its own series [1]. This unifies the series now that this the buffer-head work is greatly simplified, and generalizing a block size check is now merged upstream on v6.14-rc1. Changes in this series: - Simplify block_read_full_folio() with bh_offset() and moves this as a first patch - Re-orders the negative shift patch to go first as otherwise the blocks_per_folio changes don't make any sense - Simplifies the amount of changes in the patch "enable large folio support for large logical block sizes" as most of the required changes are now upstream - Drops the NVMe patch as its no longer needed - Keeps the nrpages to 1 for readahead for folio for buffer-heads as suggested by Matthew - Takes the suggested approach by Matthew Wilcox on async read by replacing the batched read with a straight forward iteration - Tons of cosmetic updates as requested by folks - Rebases on top of v6.14-rc1 - Tested with both fstests on ext4 and blktests using the latest changes posted to support bs > ps for block devices just now [2] - Updates the rationale for why we use 64k as the current limit: test and validation If you want this on a tree, this is available on the kdevops linux large-block-buffer-heads-for-next branch [3]. [0] https://lkml.kernel.org/r/20241113094727.1497722-1-mcgrof@xxxxxxxxxx [1] https://lkml.kernel.org/r/20241218022626.3668119-1-mcgrof@xxxxxxxxxx [2] https://lkml.kernel.org/r/20250204225729.422949-1-mcgrof@xxxxxxxxxx [3] https://github.com/linux-kdevops/linux/tree/large-block-buffer-heads-for-next Hannes Reinecke (3): fs/mpage: avoid negative shift for large blocksize fs/mpage: use blocks_per_folio instead of blocks_per_page block/bdev: enable large folio support for large logical block sizes Luis Chamberlain (4): fs/buffer: simplify block_read_full_folio() with bh_offset() fs/buffer fs/mpage: remove large folio restriction block/bdev: lift block size restrictions to 64k bdev: use bdev_io_min() for statx block size Matthew Wilcox (1): fs/buffer: remove batching from async read block/bdev.c | 11 ++++---- fs/buffer.c | 58 +++++++++++++++++------------------------- fs/mpage.c | 45 +++++++++++++++----------------- include/linux/blkdev.h | 9 ++++++- 4 files changed, 58 insertions(+), 65 deletions(-) -- 2.45.2