dm thin metadata: unlock superblock in init_pmd error path
authorJoe Thornber <ejt@redhat.com>
Wed, 7 Mar 2012 19:09:43 +0000 (19:09 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 7 Mar 2012 19:09:43 +0000 (19:09 +0000)
If dm_sm_disk_create() fails the superblock must be unlocked.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Acked-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-thin-metadata.c

index 13d964636d57438f99fe6ce806fcdd135eac218d..05b7ffc030edbf1223214245511353383ed79f8c 100644 (file)
@@ -385,6 +385,7 @@ static int init_pmd(struct dm_pool_metadata *pmd,
                data_sm = dm_sm_disk_create(tm, nr_blocks);
                if (IS_ERR(data_sm)) {
                        DMERR("sm_disk_create failed");
+                       dm_tm_unlock(tm, sblock);
                        r = PTR_ERR(data_sm);
                        goto bad;
                }