]> Pileus Git - ~andy/linux/commitdiff
dm thin metadata: lift __begin_transaction out of __write_initial_superblock
authorJoe Thornber <ejt@redhat.com>
Fri, 27 Jul 2012 14:08:11 +0000 (15:08 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 27 Jul 2012 14:08:11 +0000 (15:08 +0100)
Lift the call to __begin_transaction out of __write_initial_superblock in
dm-thin-metadata.  Called higher up the call chain now.

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

index 2c44c5c10987c1a2861fc9b1f5cef2cbe0f56299..934b3fc7bfc9db68ffd6eb134040e5d16162abed 100644 (file)
@@ -422,7 +422,6 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
        pmd->details_info.value_type.equal = NULL;
 }
 
-static int __begin_transaction(struct dm_pool_metadata *pmd);
 static int __write_initial_superblock(struct dm_pool_metadata *pmd)
 {
        int r;
@@ -478,11 +477,7 @@ static int __write_initial_superblock(struct dm_pool_metadata *pmd)
        disk_super->metadata_nr_blocks = cpu_to_le64(bdev_size >> SECTOR_TO_BLOCK_SHIFT);
        disk_super->data_block_size = cpu_to_le32(pmd->data_block_size);
 
-       r = dm_tm_commit(pmd->tm, sblock);
-       if (r)
-               return r;
-
-       return __begin_transaction(pmd);
+       return dm_tm_commit(pmd->tm, sblock);
 
 bad_locked:
        dm_bm_unlock(sblock);
@@ -800,13 +795,11 @@ struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev,
                return ERR_PTR(r);
        }
 
-       if (!create) {
-               r = __begin_transaction(pmd);
-               if (r < 0) {
-                       if (dm_pool_metadata_close(pmd) < 0)
-                               DMWARN("%s: dm_pool_metadata_close() failed.", __func__);
-                       return ERR_PTR(r);
-               }
+       r = __begin_transaction(pmd);
+       if (r < 0) {
+               if (dm_pool_metadata_close(pmd) < 0)
+                       DMWARN("%s: dm_pool_metadata_close() failed.", __func__);
+               return ERR_PTR(r);
        }
 
        return pmd;