]> www.infradead.org Git - users/jedix/linux-maple.git/commit
block: properly handle REQ_OP_ZONE_APPEND in __bio_split_to_limits
authorChristoph Hellwig <hch@lst.de>
Mon, 26 Aug 2024 17:37:56 +0000 (19:37 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 29 Aug 2024 10:32:32 +0000 (04:32 -0600)
commit1e8a7f6af926e266cc1d7ac49b56bd064057d625
treed530a0cb3b2d02d543a6c890449a89b590c87b3e
parent379b122a3ec8033aa43cb70e8ecb6fb7f98aa68f
block: properly handle REQ_OP_ZONE_APPEND in __bio_split_to_limits

Currently REQ_OP_ZONE_APPEND is handled by the bio_split_rw case in
__bio_split_to_limits.  This is harmful because REQ_OP_ZONE_APPEND
bios do not adhere to the soft max_limits value but instead use their
own capped version of max_hw_sectors, leading to incorrect splits that
later blow up in bio_split.

We still need the bio_split_rw logic to count nr_segs for blk-mq code,
so add a new wrapper that passes in the right limit, and turns any bio
that would need a split into an error as an additional debugging aid.

Signed-off-by: Christoph Hellwig <hch@lst.de>
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-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c
block/blk.h