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

Commit 98d5561b authored by majianpeng's avatar majianpeng Committed by NeilBrown
Browse files

md/linear: If md_integrity_register() fails, linear_run() must free the mem.




Signed-off-by: default avatarmajianpeng <majianpeng@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent dd775ae2
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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)