diff options
| author | Christoph Hellwig <hch@lst.de> | 2026-06-29 14:17:40 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-07-01 15:26:47 +0200 |
| commit | c1fb97d31782f5a8c66d127624626accbb0dd8bc (patch) | |
| tree | e2f5d7bf6bb5a26fbd4cde69bd6ed4290455a591 /include/linux/cdx | |
| parent | 3372eb0384b791faf133806da287819f5bfaad76 (diff) | |
| download | lwn-c1fb97d31782f5a8c66d127624626accbb0dd8bc.tar.gz lwn-c1fb97d31782f5a8c66d127624626accbb0dd8bc.zip | |
iomap: submit read bio after each extent
Currently the iomap buffered read path tries to build up read context
(i.e. bios for the typical block based case) over multiple iomaps as
long as the sector matches. This does not take into account files
that can map to multiple different devices. While this could be fixed
by a bdev check in iomap_bio_read_folio_range, the building up of I/O
over iomaps actually was a problem for the not yet merged ext2 iomap
port, as that does want to send out I/O at the end of an indirect
block mapped range.
So instead of adding more checks move over to a model where a bio only
spans a single iomap. Change ->submit_read to be called after each
iteration so that the bio based users submit the bio after each iomap.
Fuse is unchanged because the previous commit stopped using ->submit_read
for it.
Fixes: dfeab2e95a75 ("erofs: add multiple device support")
Reported-by: Kelu Ye <yekelu1@huawei.com>
Reported-by: Yifan Zhao <zhaoyifan28@huawei.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260629121750.3392300-4-hch@lst.de
Tested-by: Yifan Zhao <zhaoyifan28@huawei.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'include/linux/cdx')
0 files changed, 0 insertions, 0 deletions
