aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-thin-metadata.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/dm-thin-metadata.c')
-rw-r--r--drivers/md/dm-thin-metadata.c18
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:
596} 596}
597 597
598static int __open_or_format_metadata(struct dm_pool_metadata *pmd, 598static int __open_or_format_metadata(struct dm_pool_metadata *pmd,
599 int create) 599 int *create)
600{ 600{
601 if (create) 601 int r;
602
603 r = __superblock_all_zeroes(pmd->bm, create);
604 if (r)
605 return r;
606
607 if (*create)
602 return __format_metadata(pmd); 608 return __format_metadata(pmd);
603 else 609 else
604 return __open_metadata(pmd); 610 return __open_metadata(pmd);
@@ -617,13 +623,7 @@ static int __create_persistent_data_objects(struct dm_pool_metadata *pmd,
617 return PTR_ERR(pmd->bm); 623 return PTR_ERR(pmd->bm);
618 } 624 }
619 625
620 r = __superblock_all_zeroes(pmd->bm, create); 626 r = __open_or_format_metadata(pmd, create);
621 if (r) {
622 dm_block_manager_destroy(pmd->bm);
623 return r;
624 }
625
626 r = __open_or_format_metadata(pmd, *create);
627 if (r) 627 if (r)
628 dm_block_manager_destroy(pmd->bm); 628 dm_block_manager_destroy(pmd->bm);
629 629