From: Yu Kuai <yukuai3@xxxxxxxxxx> Unify bio split code, prepare to fix reordered split IO. Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> --- block/blk-crypto-fallback.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c index 1f9a4c33d2bd..88539e058bf0 100644 --- a/block/blk-crypto-fallback.c +++ b/block/blk-crypto-fallback.c @@ -18,7 +18,6 @@ #include <linux/module.h> #include <linux/random.h> #include <linux/scatterlist.h> -#include <trace/events/block.h> #include "blk-cgroup.h" #include "blk-crypto-internal.h" @@ -223,20 +222,14 @@ static bool blk_crypto_fallback_split_bio_if_needed(struct bio **bio_ptr) if (++i == BIO_MAX_VECS) break; } - if (num_sectors < bio_sectors(bio)) { - struct bio *split_bio; - split_bio = bio_split(bio, num_sectors, GFP_NOIO, - &crypto_bio_split); - if (IS_ERR(split_bio)) { - bio->bi_status = BLK_STS_RESOURCE; + if (num_sectors < bio_sectors(bio)) { + bio = bio_submit_split_bioset(bio, num_sectors, + &crypto_bio_split); + if (!bio) return false; - } - bio_chain(split_bio, bio); - trace_block_split(split_bio, bio->bi_iter.bi_sector); - submit_bio_noacct(bio); - *bio_ptr = split_bio; + *bio_ptr = bio; } return true; -- 2.39.2