Re: [PATCH v2] md: use md_free_cloned_bio() in md_end_clone_io()

From: Yu Kuai

Date: Sun Apr 19 2026 - 00:52:04 EST


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

--
Thansk,
Kuai