]> www.infradead.org Git - users/willy/linux.git/commit
block: rework bio splitting
authorChristoph Hellwig <hch@lst.de>
Mon, 26 Aug 2024 17:37:54 +0000 (19:37 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 29 Aug 2024 10:32:32 +0000 (04:32 -0600)
commitb35243a447b9fe6457fa8e1352152b818436ba5a
treef9beca92729368456e39512aa7c884dd7f12886c
parentf6f84be089c9d6f5e3e1228c389e51c7ae7bad1a
block: rework bio splitting

The current setup with bio_may_exceed_limit and __bio_split_to_limits
is a bit of a mess.

Change it so that __bio_split_to_limits does all the work and is just
a variant of bio_split_to_limits that returns nr_segs.  This is done
by inlining it and instead have the various bio_split_* helpers directly
submit the potentially split bios.

To support btrfs, the rw version has a lower level helper split out
that just returns the offset to split.  This turns out to nicely clean
up the btrfs flow as well.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David Sterba <dsterba@suse.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Tested-by: Hans Holmberg <hans.holmberg@wdc.com>
Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com>
Link: https://lore.kernel.org/r/20240826173820.1690925-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c
block/blk-mq.c
block/blk.h
fs/btrfs/bio.c
include/linux/bio.h