diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-thin-metadata.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c index e7b8ad78af47..7317f1b4ab15 100644 --- a/drivers/md/dm-thin-metadata.c +++ b/drivers/md/dm-thin-metadata.c @@ -595,23 +595,21 @@ bad: return r; } -static int __open_or_format_metadata(struct dm_pool_metadata *pmd, - int *create) +static int __open_or_format_metadata(struct dm_pool_metadata *pmd) { - int r; + int r, unformatted; - r = __superblock_all_zeroes(pmd->bm, create); + r = __superblock_all_zeroes(pmd->bm, &unformatted); if (r) return r; - if (*create) + if (unformatted) return __format_metadata(pmd); else return __open_metadata(pmd); } -static int __create_persistent_data_objects(struct dm_pool_metadata *pmd, - int *create) +static int __create_persistent_data_objects(struct dm_pool_metadata *pmd) { int r; @@ -623,7 +621,7 @@ static int __create_persistent_data_objects(struct dm_pool_metadata *pmd, return PTR_ERR(pmd->bm); } - r = __open_or_format_metadata(pmd, create); + r = __open_or_format_metadata(pmd); if (r) dm_block_manager_destroy(pmd->bm); @@ -794,7 +792,6 @@ struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev, { int r; struct dm_pool_metadata *pmd; - int create; pmd = kmalloc(sizeof(*pmd), GFP_KERNEL); if (!pmd) { @@ -808,7 +805,7 @@ struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev, pmd->bdev = bdev; pmd->data_block_size = data_block_size; - r = __create_persistent_data_objects(pmd, &create); + r = __create_persistent_data_objects(pmd); if (r) { kfree(pmd); return ERR_PTR(r); |