diff --git a/drivers/md/md.c b/drivers/md/md.c index 2166af8a76546d43f6739dadbcfd4e23779bf4c1..58bee2366ea8eaf8a11602cb2aec7f3677e19d99 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -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);