diff options
author | Joe Thornber <ejt@redhat.com> | 2012-07-27 18:08:13 +0400 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2012-07-27 18:08:13 +0400 |
commit | 237074c0a30ac017faaf5c3dfab01aff0c6bb03a (patch) | |
tree | e980f9294638797fa8ef3412dd7036d56b19df1d /drivers/md/dm-thin-metadata.c | |
parent | a97e5e6fd027840fc28c72470c581ba68ee9732a (diff) | |
download | linux-237074c0a30ac017faaf5c3dfab01aff0c6bb03a.tar.xz |
dm thin metadata: move __superblock_all_zeroes to __open_or_format_metadata
Move the check for __superblock_all_zeroes from
__create_persistent_data_objects() down to __open_or_format_metadata in
dm-thin-metadata.
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>
Diffstat (limited to 'drivers/md/dm-thin-metadata.c')
-rw-r--r-- | drivers/md/dm-thin-metadata.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c index 83ce2fde8ed7..e7b8ad78af47 100644 --- a/drivers/md/dm-thin-metadata.c +++ b/drivers/md/dm-thin-metadata.c @@ -596,9 +596,15 @@ bad: } static int __open_or_format_metadata(struct dm_pool_metadata *pmd, - int create) + int *create) { - if (create) + int r; + + r = __superblock_all_zeroes(pmd->bm, create); + if (r) + return r; + + if (*create) return __format_metadata(pmd); else return __open_metadata(pmd); @@ -617,13 +623,7 @@ static int __create_persistent_data_objects(struct dm_pool_metadata *pmd, return PTR_ERR(pmd->bm); } - r = __superblock_all_zeroes(pmd->bm, create); - if (r) { - dm_block_manager_destroy(pmd->bm); - return r; - } - - r = __open_or_format_metadata(pmd, *create); + r = __open_or_format_metadata(pmd, create); if (r) dm_block_manager_destroy(pmd->bm); |