dm thin metadata: unlock superblock in init_pmd error path
authorJoe Thornber <[email protected]>
Wed, 7 Mar 2012 19:09:43 +0000 (19:09 +0000)
committerAlasdair G Kergon <[email protected]>
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 <[email protected]>
Acked-by: Mike Snitzer <[email protected]>
Cc: [email protected]
Signed-off-by: Alasdair G Kergon <[email protected]>
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;
                }