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: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
b8d966efd9
commit
1ec22eb2b4
|
@ -3862,6 +3862,8 @@ static int md_alloc(dev_t dev, char *name)
|
|||
if (mddev2->gendisk &&
|
||||
strcmp(mddev2->gendisk->disk_name, name) == 0) {
|
||||
spin_unlock(&all_mddevs_lock);
|
||||
mutex_unlock(&disks_mutex);
|
||||
mddev_put(mddev);
|
||||
return -EEXIST;
|
||||
}
|
||||
spin_unlock(&all_mddevs_lock);
|
||||
|
|
Loading…
Reference in New Issue