Messages in this thread Patch in this message | | | Date | Fri, 17 Jul 2009 13:09:07 -0700 | From | Greg KH <> | Subject | [patch 16/24] md: fix error path when duplicate name is found on md device creation. |
| |
2.6.30-stable review patch. If anyone has any objections, please let us know.
------------------
From: NeilBrown <neilb@suse.de>
commit 1ec22eb2b4a2e1a763106bce36b11c02eaa84e61 upstream.
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.
Found-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/md/md.c | 2 ++ 1 file changed, 2 insertions(+)
--- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3876,6 +3876,8 @@ static int md_alloc(dev_t dev, char *nam 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);
| |