diff mbox

Add missing del_gendisk to error path

Message ID 4ABA1686.1000906@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Alasdair Kergon
Headers show

Commit Message

Zdenek Kabelac Sept. 23, 2009, 12:37 p.m. UTC
Add missing del_gendisk() to error path when creation of workqueue fails.
Otherwice there is a resource leak and following warning is shown:

WARNING: at fs/sysfs/dir.c:487 sysfs_add_one+0xc5/0x160()
sysfs: cannot create duplicate filename '/devices/virtual/block/dm-0'

Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>

---
 drivers/md/dm.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Comments

Jonthan Brassow Sept. 23, 2009, 4:41 p.m. UTC | #1
Reviewed-by: Jonathan Brassow <jbrassow@redhat.com>

  brassow
On Sep 23, 2009, at 7:37 AM, Zdenek Kabelac wrote:

> Add missing del_gendisk() to error path when creation of workqueue  
> fails.
> Otherwice there is a resource leak and following warning is shown:
>
> WARNING: at fs/sysfs/dir.c:487 sysfs_add_one+0xc5/0x160()
> sysfs: cannot create duplicate filename '/devices/virtual/block/dm-0'
>
> Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
>
> ---
> drivers/md/dm.c |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index b4845b1..bf5961d 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -1819,6 +1819,7 @@ static struct mapped_device *alloc_dev(int  
> minor)
> bad_bdev:
> 	destroy_workqueue(md->wq);
> bad_thread:
> +	del_gendisk(md->disk);
> 	put_disk(md->disk);
> bad_disk:
> 	blk_cleanup_queue(md->queue);
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox

Patch

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index b4845b1..bf5961d 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1819,6 +1819,7 @@  static struct mapped_device *alloc_dev(int minor)
 bad_bdev:
 	destroy_workqueue(md->wq);
 bad_thread:
+	del_gendisk(md->disk);
 	put_disk(md->disk);
 bad_disk:
 	blk_cleanup_queue(md->queue);