Commit 1ec22eb2 authored by NeilBrown's avatar NeilBrown

md: fix error path when duplicate name is found on md device creation.

When an md device is created by name (rather than number) we need to
check that the name is not already in use.  If this check finds a
duplicate, we return an error without dropping the lock or freeing
the newly create mddev.
This patch fixes that.

Cc: stable@kernel.org
Found-by: default avatarJiri Slaby <jirislaby@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent b8d966ef
...@@ -3862,6 +3862,8 @@ static int md_alloc(dev_t dev, char *name) ...@@ -3862,6 +3862,8 @@ static int md_alloc(dev_t dev, char *name)
if (mddev2->gendisk && if (mddev2->gendisk &&
strcmp(mddev2->gendisk->disk_name, name) == 0) { strcmp(mddev2->gendisk->disk_name, name) == 0) {
spin_unlock(&all_mddevs_lock); spin_unlock(&all_mddevs_lock);
mutex_unlock(&disks_mutex);
mddev_put(mddev);
return -EEXIST; return -EEXIST;
} }
spin_unlock(&all_mddevs_lock); spin_unlock(&all_mddevs_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment