]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Factor __destroy_persistent_data_objects out of dm_pool_metadata_close.
authorJoe Thornber <ejt@redhat.com>
Tue, 24 Jul 2012 23:25:25 +0000 (09:25 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 24 Jul 2012 23:25:25 +0000 (09:25 +1000)
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 dab2109ec40a23ff08ffb129fead02812d745fd9..b646a71f6da9ef502a5afea8eb6d731b95f38429 100644 (file)
@@ -535,6 +535,15 @@ static int __create_persistent_data_objects(struct dm_pool_metadata *pmd,
        return r;
 }
 
+static void __destroy_persistent_data_objects(struct dm_pool_metadata *pmd)
+{
+       dm_sm_destroy(pmd->data_sm);
+       dm_sm_destroy(pmd->metadata_sm);
+       dm_tm_destroy(pmd->nb_tm);
+       dm_tm_destroy(pmd->tm);
+       dm_block_manager_destroy(pmd->bm);
+}
+
 static int __begin_transaction(struct dm_pool_metadata *pmd)
 {
        int r;
@@ -792,11 +801,7 @@ int dm_pool_metadata_close(struct dm_pool_metadata *pmd)
                DMWARN("%s: __commit_transaction() failed, error = %d",
                       __func__, r);
 
-       dm_tm_destroy(pmd->tm);
-       dm_tm_destroy(pmd->nb_tm);
-       dm_block_manager_destroy(pmd->bm);
-       dm_sm_destroy(pmd->metadata_sm);
-       dm_sm_destroy(pmd->data_sm);
+       __destroy_persistent_data_objects(pmd);
        kfree(pmd);
 
        return 0;