Re: [PATCH v2] md: use md_free_cloned_bio() in md_end_clone_io()
From: Abd-Alrhman Masalkhi
Date: Mon Apr 20 2026 - 03:38:31 EST
Hi Kuai,
On Sun, Apr 19, 2026 at 12:51 +0800, Yu Kuai wrote:
> Hi,
>
> 在 2026/4/15 16:19, Abd-Alrhman Masalkhi 写道:
>> md_end_clone_io() and md_free_cloned_bio() share identical teardown
>> logic. Use md_free_cloned_bio() in md_end_clone_io() for cleanup and
>> call bio_endio() afterwards.
>>
>> Signed-off-by: Abd-Alrhman Masalkhi <abd.masalkhi@xxxxxxxxx>
>> ---
>> Changes in v2:
>> - Reuse md_free_cloned_bio() instead of introducing a new helper
>> - Link to v1: https://lore.kernel.org/linux-raid/20260414103813.307601-1-abd.masalkhi@xxxxxxxxx
>> ---
>> drivers/md/md.c | 13 +------------
>> 1 file changed, 1 insertion(+), 12 deletions(-)
>>
>> diff --git a/drivers/md/md.c b/drivers/md/md.c
>> index ac71640ff3a8..8565566a447b 100644
>> --- a/drivers/md/md.c
>> +++ b/drivers/md/md.c
>> @@ -9212,20 +9212,9 @@ static void md_end_clone_io(struct bio *bio)
>> {
>> struct md_io_clone *md_io_clone = bio->bi_private;
>> struct bio *orig_bio = md_io_clone->orig_bio;
>> - struct mddev *mddev = md_io_clone->mddev;
>> -
>> - if (bio_data_dir(orig_bio) == WRITE && md_bitmap_enabled(mddev, false))
>> - md_bitmap_end(mddev, md_io_clone);
>> -
>> - if (bio->bi_status && !orig_bio->bi_status)
>> - orig_bio->bi_status = bio->bi_status;
>> -
>> - if (md_io_clone->start_time)
>> - bio_end_io_acct(orig_bio, md_io_clone->start_time);
>>
>> - bio_put(bio);
>> + md_free_cloned_bio(bio);
>> bio_endio(orig_bio);
>> - percpu_ref_put(&mddev->active_io);
>> }
>>
>> static void md_clone_bio(struct mddev *mddev, struct bio **bio)
>
> Same as I replied to v1,
> This patch is no longer needed after following patch:
> https://lore.kernel.org/r/20260408043548.1695157-1-bmarzins@xxxxxxxxxx
Thanks, I'll drop this patch.
>
> --
> Thansk,
> Kuai
--
Best Regards,
Abd-Alrhman