Messages in this thread |  | | Date | Mon, 1 Sep 2025 15:43:09 +0900 | | Subject | Re: [PATCH RFC v3 07/15] md/raid1: convert to use bio_submit_split_bioset() | | From | Damien Le Moal <> |
| |
On 9/1/25 12:32 PM, Yu Kuai wrote: > From: Yu Kuai <yukuai3@huawei.com> > > Unify bio split code, and prepare to fix disordered split IO. > > Signed-off-by: Yu Kuai <yukuai3@huawei.com>
[...]
> @@ -1586,18 +1577,13 @@ static void raid1_write_request(struct mddev *mddev, struct bio *bio, > max_sectors = min_t(int, max_sectors, > BIO_MAX_VECS * (PAGE_SIZE >> 9)); > if (max_sectors < bio_sectors(bio)) { > - struct bio *split = bio_split(bio, max_sectors, > - GFP_NOIO, &conf->bio_split); > - > - if (IS_ERR(split)) { > - error = PTR_ERR(split); > + bio = bio_submit_split_bioset(bio, max_sectors, > + &conf->bio_split); > + if (!bio) { > + set_bit(R1BIO_Returned, &r1_bio->state);
Before it was "set_bit(R1BIO_Uptodate, &r1_bio->state);" that was done. Now it is R1BIO_Returned that is set. The commit message does not mention this change at all. Is this a bug fix ? If yes, that should be in a pre patch before the conversion to using bio_submit_split_bioset().
> goto err_handle; > } > > - bio_chain(split, bio); > - trace_block_split(split, bio->bi_iter.bi_sector); > - submit_bio_noacct(bio); > - bio = split; > r1_bio->master_bio = bio; > r1_bio->sectors = max_sectors; > } > @@ -1687,8 +1673,6 @@ static void raid1_write_request(struct mddev *mddev, struct bio *bio, > } > } > > - bio->bi_status = errno_to_blk_status(error); > - set_bit(R1BIO_Uptodate, &r1_bio->state); > raid_end_bio_io(r1_bio); > }
-- Damien Le Moal Western Digital Research
|  |