On Fri, 30 Nov 2012 05:21:05 -0500 (EST) CAI Qian <[email protected]> wrote:

> md_stop() would stop an array, but not free various attached
> data structures.
> For internal arrays, these are freed later in do_md_stop() or
> mddev_put(), but they don't apply for dm-raid arrays.
> So get md_stop() to free them, and only all it from dm-raid.
> For internal arrays we now call __md_stop.
> 
> Reported-by: majianpeng <[email protected]>
> Signed-off-by: NeilBrown <[email protected]>
> 
> Upstream-ID: 5eff3c439d3478ba9e8ba5f8c0aaf6e6fadb6e58
> Stable-trees: 3.6.x
> Signed-off-by: CAI Qian <[email protected]>
> 
> diff --git a/drivers/md/md.c.orig b/drivers/md/md.c
> index c7b000f..50e203e 100644
> --- a/drivers/md/md.c.orig
> +++ b/drivers/md/md.c
> @@ -5290,7 +5290,7 @@ void md_stop_writes(struct mddev *mddev)
>  }
>  EXPORT_SYMBOL_GPL(md_stop_writes);
>  
> -void md_stop(struct mddev *mddev)
> +static void __md_stop(struct mddev *mddev)
>  {
>       mddev->ready = 0;
>       mddev->pers->stop(mddev);
> @@ -5300,6 +5300,18 @@ void md_stop(struct mddev *mddev)
>       mddev->pers = NULL;
>       clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
>  }
> +
> +void md_stop(struct mddev *mddev)
> +{
> +     /* stop the array and free an attached data structures.
> +      * This is called from dm-raid
> +      */
> +     __md_stop(mddev);
> +     bitmap_destroy(mddev);
> +     if (mddev->bio_set)
> +             bioset_free(mddev->bio_set);
> +}
> +
>  EXPORT_SYMBOL_GPL(md_stop);
>  
>  static int md_set_readonly(struct mddev *mddev, struct block_device *bdev)
> @@ -5360,7 +5372,7 @@ static int do_md_stop(struct mddev * mddev, int mode,
>                       set_disk_ro(disk, 0);
>  
>               __md_stop_writes(mddev);
> -             md_stop(mddev);
> +             __md_stop(mddev);
>               mddev->queue->merge_bvec_fn = NULL;
>               mddev->queue->backing_dev_info.congested_fn = NULL;
>  


I wasn't going to submit this to  -stable as it is just a minor memory leak.
No crash, no data corruption.

Up to Greg if he takes it I guess.

NeilBrown


Attachment: signature.asc
Description: PGP signature

Reply via email to