dm thin metadata: factor __destroy_persistent_data out of dm_pool_metadata_close

Factor __destroy_persistent_data_objects out of dm_pool_metadata_close.

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>
This commit is contained in:
Joe Thornber 2012-07-27 15:08:10 +01:00 committed by Alasdair G Kergon
parent 332627db00
commit f9dd9352b9

View 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;