From: Yu Kuai <yukuai3@xxxxxxxxxx> Changes in v2: - export a new helper bio_submit_split_bioset() instead of export bio_submit_split() directly; - don't set no merge flag in the new helper; - add patch 7 and patch 10; - add patch 8 to skip bio checks for resubmitting split bio; patch 1 export a bio split helper; patch 2-7 unify bio split code; path 8-9 convert the helper to insert split bio to the head of current bio list; patch 10 is a follow cleanup for raid0; This set is just test for raid5 for now, see details in patch 9; Yu Kuai (10): block: factor out a helper bio_submit_split_bioset() md/raid0: convert raid0_handle_discard() to use bio_submit_split_bioset() md/raid1: convert to use bio_submit_split_bioset() md/raid10: convert read/write to use bio_submit_split_bioset() md/raid5: convert to use bio_submit_split_bioset() md/md-linear: convert to use bio_submit_split_bioset() blk-crypto: convert to use bio_submit_split_bioset() block: skip unnecessary checks for split bio block: fix disordered IO in the case recursive split md/raid0: convert raid0_make_request() to use bio_submit_split_bioset() block/blk-core.c | 34 ++++++++++++++++---- block/blk-crypto-fallback.c | 15 +++------ block/blk-merge.c | 63 ++++++++++++++++++++++++------------- block/blk-throttle.c | 2 +- block/blk.h | 3 +- drivers/md/md-linear.c | 14 ++------- drivers/md/raid0.c | 31 ++++++------------ drivers/md/raid1.c | 35 +++++++++------------ drivers/md/raid1.h | 4 ++- drivers/md/raid10.c | 51 +++++++++++++----------------- drivers/md/raid10.h | 2 ++ drivers/md/raid5.c | 10 +++--- include/linux/blkdev.h | 2 ++ 13 files changed, 137 insertions(+), 129 deletions(-) -- 2.39.2