Now that LBS is upstream on v6.12 and we have bs > ps for filesystems this address support for up bs > ps block devices. The first RFC v1 was posted [0] before the turkey massacre in the US. The changes on this v2 addrsess all the feedback from that series. The changes on this v2: - Simplfy with folio_pos() as suggested by Matthew Wilcox - To address support to reduce the buffer head array of size MAX_BUF_PER_PAGE to avoid stack growth growth warnings on systems with large base page sizes such as Hexagon with 256 KiB base page sizes I've added the async batch helper bh_read_batch_async() and iterator support for block_read_full_folio(). - Simplify the bdev_io_min() as suggested by Christoph Hellwig - Collect tags, and minor comment enhancements and remove new header inclusions where not actually needed This still goes out as RFCs as I'm still not done with my testing. As part of my test plan I'm including a baseline of ext4 as we're mucking around with buffer heads and testing xfs alone won't help to ensure we don't regress existing buffer head users. I'm also testing XFS with 32k sector size support given part of this enablement is to allow filesystems to also increase their support sector size. Patches 2-4 are really the meat and bones behind these changes and careful review is appreciated. I suspect a bit of bike shedding potential is in order there as well for those patches. If you'd like to help test this, this is available in the kdevops linux branch large-block-buffer-heads-for-next [1]. It is based on v6.13-rc2, and on that tree has a fix not yet merged on v6.13-rc2 which is required for LBS. That fix is already being tested and planned for v6.13-rc3, I carry since otherwise you wound't be able to mount any LBS filesystem with a filesystem block size larger than 16k. [0] https://lkml.kernel.org/r/20241113094727.1497722-1-mcgrof@xxxxxxxxxx [1] https://github.com/linux-kdevops/linux/tree/large-block-buffer-heads-for-next Hannes Reinecke (3): fs/mpage: use blocks_per_folio instead of blocks_per_page fs/mpage: avoid negative shift for large blocksize block/bdev: enable large folio support for large logical block sizes Luis Chamberlain (8): fs/buffer: move async batch read code into a helper fs/buffer: add a for_each_bh() for block_read_full_folio() fs/buffer: add iteration support for block_read_full_folio() fs/buffer: reduce stack usage on bh_read_iter() fs/buffer fs/mpage: remove large folio restriction block/bdev: lift block size restrictions and use common definition nvme: remove superfluous block size check bdev: use bdev_io_min() for statx block size block/bdev.c | 13 +-- drivers/nvme/host/core.c | 10 -- fs/buffer.c | 209 +++++++++++++++++++++++++++------------ fs/mpage.c | 47 +++++---- include/linux/blkdev.h | 11 ++- 5 files changed, 187 insertions(+), 103 deletions(-) -- 2.43.0