md/linear: If md_integrity_register() failed,linear_run() must free the mem.
From df3b2e15fb325def8f5eaa076b328084dd86c421 Mon Sep 17 00:00:00 2001
From: majianpeng <[email protected]>
Date: Fri, 23 Mar 2012 10:09:18 +0800
Subject: [PATCH] md/linear: If md_integrity_register() failed,linear_run()
must free the mem.
Signed-off-by majianpeng <[email protected]>
--- drivers/md/linear.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
drivers/md/linear.c +8 -1
@@ -198,6 +198,7 @@ out:static int linear_run (struct mddev *mddev) {struct linear_conf *conf; +int ret;if (md_check_no_bitmap (mddev))return -EINVAL ;
@@ -211,7 +212,13 @@ static int linear_run (struct mddev *mddev)blk_queue_merge_bvec (mddev->queue, linear_mergeable_bvec); mddev->queue->backing_dev_info.congested_fn = linear_congested; mddev->queue->backing_dev_info.congested_data = mddev; -return md_integrity_register (mddev); + + ret =md_integrity_register (mddev); +if (ret) { +kfree (conf); + mddev->private =NULL ; + } +return ret; }static int linear_add (struct mddev *mddev,struct md_rdev *rdev)
Signature · 6 lines
1.7.5.4 -------------- majianpeng 2012-03-23
NeilBrown
AppliedQuoted 29 lines · On Fri, 23 Mar 2012 10:29:19 +0800 "majianpeng" <[email protected]> wrote:
Quoted 1 line
From
df3b2e15fb325def8f5eaa076b328084dd86c421Mon Sep 17 00:00:00 2001From: majianpeng <[email protected]>
Date: Fri, 23 Mar 2012 10:09:18 +0800
Subject: [PATCH] md/linear: Ifmd_integrity_register()failed,linear_run()
must free the mem.Signed-off-by majianpeng <[email protected]>--- drivers/md/linear.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)drivers/md/linear.c +1
-1@@ -198,6 +198,7 @@ out:static int linear_run (struct mddev *mddev) {struct linear_conf *conf; +int ret;if (md_check_no_bitmap (mddev))return -EINVAL ;@@ -211,7 +212,13 @@ static int linear_run (struct mddev *mddev)blk_queue_merge_bvec (mddev->queue, linear_mergeable_bvec); mddev->queue->backing_dev_info.congested_fn = linear_congested; mddev->queue->backing_dev_info.congested_data = mddev; -return md_integrity_register (mddev);
drivers/md/linear.c static int linear_run (struct mddev *mddev) · line 224
Quoted 10 lines
drivers/md/linear.c +7
-0+ + ret =md_integrity_register (mddev); +if (ret) { +kfree (conf); + mddev->private =NULL ; + } +return ret; }static int linear_add (struct mddev *mddev,struct md_rdev *rdev)
Applied, thanks.
NeilBrown