All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
To: Yu Kuai <yukuai@fnnas.com>, song@kernel.org
Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org,
	yukuai@fnnas.com
Subject: Re: [PATCH] md: factor out cloned bio cleanup into md_free_bio()
Date: Mon, 20 Apr 2026 09:30:34 +0200	[thread overview]
Message-ID: <m2mryyks11.fsf@gmail.com> (raw)
In-Reply-To: <b33f52c1-0f10-4ac0-8792-4387848e40d4@fnnas.com>

On Sun, Apr 19, 2026 at 12:48 +0800, Yu Kuai wrote:
> Hi,
>
> 在 2026/4/14 18:38, Abd-Alrhman Masalkhi 写道:
>> Refactor duplicated cloned bio completion and cleanup logic into
>> a new helper, md_free_bio().
>>
>> md_end_clone_io() and md_free_cloned_bio() previously shared nearly
>> identical teardown code, differing only in whether the original
>> bio’s endio callback was invoked. Introduce a boolean parameter
>> orig_endio to control this behavior and consolidate the logic.
>>
>> Signed-off-by: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
>> ---
>>   drivers/md/md.c | 26 +++++++++-----------------
>>   1 file changed, 9 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/md/md.c b/drivers/md/md.c
>> index ac71640ff3a8..707d605fee61 100644
>> --- a/drivers/md/md.c
>> +++ b/drivers/md/md.c
>> @@ -9208,7 +9208,7 @@ static void md_bitmap_end(struct mddev *mddev, struct md_io_clone *md_io_clone)
>>   	fn(mddev, md_io_clone->offset, md_io_clone->sectors);
>>   }
>>   
>> -static void md_end_clone_io(struct bio *bio)
>> +static void md_free_bio(struct bio *bio, bool orig_endio)
>>   {
>>   	struct md_io_clone *md_io_clone = bio->bi_private;
>>   	struct bio *orig_bio = md_io_clone->orig_bio;
>> @@ -9224,10 +9224,16 @@ static void md_end_clone_io(struct bio *bio)
>>   		bio_end_io_acct(orig_bio, md_io_clone->start_time);
>>   
>>   	bio_put(bio);
>> -	bio_endio(orig_bio);
>> +	if (orig_endio)
>> +		bio_endio(orig_bio);
>>   	percpu_ref_put(&mddev->active_io);
>>   }
>>   
>> +static void md_end_clone_io(struct bio *bio)
>> +{
>> +	md_free_bio(bio, true);
>> +}
>> +
>>   static void md_clone_bio(struct mddev *mddev, struct bio **bio)
>>   {
>>   	struct block_device *bdev = (*bio)->bi_bdev;
>> @@ -9262,21 +9268,7 @@ EXPORT_SYMBOL_GPL(md_account_bio);
>>   
>>   void md_free_cloned_bio(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);
>> -	percpu_ref_put(&mddev->active_io);
>> +	md_free_bio(bio, false);
>>   }
>>   EXPORT_SYMBOL_GPL(md_free_cloned_bio);
>
> This patch is no longer needed after following patch:
> https://lore.kernel.org/r/20260408043548.1695157-1-bmarzins@redhat.com

Thanks, I'll drop this patch.

>
>>   
>
> -- 
> Thansk,
> Kuai

-- 
Best Regards,
Abd-Alrhman

      reply	other threads:[~2026-04-20  7:30 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-14 10:38 [PATCH] md: factor out cloned bio cleanup into md_free_bio() Abd-Alrhman Masalkhi
2026-04-15  2:27 ` Li Nan
2026-04-15  7:48   ` Abd-Alrhman Masalkhi
2026-04-19  4:48 ` Yu Kuai
2026-04-20  7:30   ` Abd-Alrhman Masalkhi [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2mryyks11.fsf@gmail.com \
    --to=abd.masalkhi@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=song@kernel.org \
    --cc=yukuai@fnnas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.