Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5220ea1e authored by majianpeng's avatar majianpeng Committed by NeilBrown
Browse files

md/raid1: If md_integrity_register() failed,run() must free the mem



Signed-off-by: default avatarmajianpeng <majianpeng@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 0366ef84
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2636,11 +2636,13 @@ static struct r1conf *setup_conf(struct mddev *mddev)
	return ERR_PTR(err);
}

static int stop(struct mddev *mddev);
static int run(struct mddev *mddev)
{
	struct r1conf *conf;
	int i;
	struct md_rdev *rdev;
	int ret;

	if (mddev->level != 1) {
		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;
		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)