[PATCH] md/raid10: split reshape bios before bitmap accounting
Yu Kuai <[email protected]>
| Newsgroups | gmane.linux.kernel,gmane.linux.raid |
|---|---|
| Message-ID | <[email protected]> |
Use the shared mddev_bio_split_at_reshape_offset() helper so RAID10 submits only one-side bios to llbitmap during reshape. Signed-off-by: Yu Kuai <[email protected]> --- drivers/md/raid10.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 13e31d01ed0f..b54cb1828a48 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -1891,6 +1891,12 @@ static bool raid10_make_request(struct mddev *mddev, struct bio *bio) sectors = chunk_sects - (bio->bi_iter.bi_sector & (chunk_sects - 1)); + + bio = mddev_bio_split_at_reshape_offset(mddev, bio, §ors, + &conf->bio_split); + if (!bio) + return true; + __make_request(mddev, bio, sectors); /* In case raid10d snuck in to freeze_array */ @@ -4264,7 +4270,6 @@ static int raid10_check_reshape(struct mddev *mddev) mddev->new_chunk_sectors && mddev->new_chunk_sectors < mddev->chunk_sectors) return -EOPNOTSUPP; - if (setup_geo(&geo, mddev, geo_start) != conf->copies) /* mustn't change number of copies */ return -EINVAL; -- 2.51.0