From: Yu Kuai Currently, raid0_make_request() will remap the original bio to underlying disks to prevent disordered IO. Now that bio_submit_split_bioset() will put original bio to the head of current->bio_list, it's safe converting to use this helper and bio will still be ordered. On the one hand unify bio split code; On the other hand fix missing blkcg_bio_issue_init() and trace_block_split() for split IO. CC: Jan Kara Signed-off-by: Yu Kuai --- drivers/md/raid0.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index 4dcc5133d679..8773f633299e 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -607,17 +607,9 @@ static bool raid0_make_request(struct mddev *mddev, struct bio *bio) : sector_div(sector, chunk_sects)); if (sectors < bio_sectors(bio)) { - struct bio *split = bio_split(bio, sectors, GFP_NOIO, - &mddev->bio_set); - - if (IS_ERR(split)) { - bio->bi_status = errno_to_blk_status(PTR_ERR(split)); - bio_endio(bio); + bio = bio_submit_split_bioset(bio, sectors, &mddev->bio_set); + if (!bio) return true; - } - bio_chain(split, bio); - raid0_map_submit_bio(mddev, bio); - bio = split; } raid0_map_submit_bio(mddev, bio); -- 2.39.2