forked from luck/tmp_suning_uos_patched
md/raid1: If md_integrity_register() failed,run() must free the mem
Signed-off-by: majianpeng <majianpeng@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
0366ef8475
commit
5220ea1e64
@ -2636,11 +2636,13 @@ static struct r1conf *setup_conf(struct mddev *mddev)
|
|||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int stop(struct mddev *mddev);
|
||||||
static int run(struct mddev *mddev)
|
static int run(struct mddev *mddev)
|
||||||
{
|
{
|
||||||
struct r1conf *conf;
|
struct r1conf *conf;
|
||||||
int i;
|
int i;
|
||||||
struct md_rdev *rdev;
|
struct md_rdev *rdev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (mddev->level != 1) {
|
if (mddev->level != 1) {
|
||||||
printk(KERN_ERR "md/raid1:%s: raid level not set to mirroring (%d)\n",
|
printk(KERN_ERR "md/raid1:%s: raid level not set to mirroring (%d)\n",
|
||||||
@ -2705,7 +2707,11 @@ static int run(struct mddev *mddev)
|
|||||||
mddev->queue->backing_dev_info.congested_data = mddev;
|
mddev->queue->backing_dev_info.congested_data = mddev;
|
||||||
blk_queue_merge_bvec(mddev->queue, raid1_mergeable_bvec);
|
blk_queue_merge_bvec(mddev->queue, raid1_mergeable_bvec);
|
||||||
}
|
}
|
||||||
return md_integrity_register(mddev);
|
|
||||||
|
ret = md_integrity_register(mddev);
|
||||||
|
if (ret)
|
||||||
|
stop(mddev);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stop(struct mddev *mddev)
|
static int stop(struct mddev *mddev)
|
||||||
|
Loading…
Reference in New Issue
Block a user