Messages in this thread Patch in this message |  | | From | Yu Kuai <> | | Subject | [PATCH RFC v3 11/15] md/md-linear: convert to use bio_submit_split_bioset() | | Date | Mon, 1 Sep 2025 11:32:16 +0800 |
| |
From: Yu Kuai <yukuai3@huawei.com>
Unify bio split code, prepare to fix disordered split IO.
Signed-off-by: Yu Kuai <yukuai3@huawei.com> --- drivers/md/md-linear.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/md/md-linear.c b/drivers/md/md-linear.c index 59d7963c7843..701e3aac0a21 100644 --- a/drivers/md/md-linear.c +++ b/drivers/md/md-linear.c @@ -256,19 +256,11 @@ static bool linear_make_request(struct mddev *mddev, struct bio *bio) if (unlikely(bio_end_sector(bio) > end_sector)) { /* This bio crosses a device boundary, so we have to split it */ - struct bio *split = bio_split(bio, end_sector - bio_sector, + bio = bio_submit_split_bioset(bio, end_sector - bio_sector, GFP_NOIO, &mddev->bio_set); - - if (IS_ERR(split)) { - bio->bi_status = errno_to_blk_status(PTR_ERR(split)); - bio_endio(bio); + if (!bio) { return true; } - - bio_chain(split, bio); - trace_block_split(split, bio->bi_iter.bi_sector); - submit_bio_noacct(bio); - bio = split; } md_account_bio(mddev, &bio); -- 2.39.2
|  |