[PATCH RFC v2 00/10] block: fix disordered IO in the case recursive split

Yu Kuai posted 10 patches 1 month ago
There is a newer version of this series
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(-)
[PATCH RFC v2 00/10] block: fix disordered IO in the case recursive split
Posted by Yu Kuai 1 month ago
From: Yu Kuai <yukuai3@huawei.com>

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