Commit 399c9bdb authored by Huaisheng Ye's avatar Huaisheng Ye Committed by Mike Snitzer

dm thin metadata: Remove unused local variable when create thin and snap

The local variable disk details is not used during the creating of thin & snap
devices. Remove them from dm-thin-metadata, and add pointer validity check for
pointer value in btree_lookup_raw. Skip memory copy when the caller doesn't need
the value.
Signed-off-by: default avatarHuaisheng Ye <yehs1@lenovo.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent f0e90b6c
...@@ -1051,12 +1051,11 @@ static int __create_thin(struct dm_pool_metadata *pmd, ...@@ -1051,12 +1051,11 @@ static int __create_thin(struct dm_pool_metadata *pmd,
int r; int r;
dm_block_t dev_root; dm_block_t dev_root;
uint64_t key = dev; uint64_t key = dev;
struct disk_device_details details_le;
struct dm_thin_device *td; struct dm_thin_device *td;
__le64 value; __le64 value;
r = dm_btree_lookup(&pmd->details_info, pmd->details_root, r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
&key, &details_le); &key, NULL);
if (!r) if (!r)
return -EEXIST; return -EEXIST;
...@@ -1129,12 +1128,11 @@ static int __create_snap(struct dm_pool_metadata *pmd, ...@@ -1129,12 +1128,11 @@ static int __create_snap(struct dm_pool_metadata *pmd,
dm_block_t origin_root; dm_block_t origin_root;
uint64_t key = origin, dev_key = dev; uint64_t key = origin, dev_key = dev;
struct dm_thin_device *td; struct dm_thin_device *td;
struct disk_device_details details_le;
__le64 value; __le64 value;
/* check this device is unused */ /* check this device is unused */
r = dm_btree_lookup(&pmd->details_info, pmd->details_root, r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
&dev_key, &details_le); &dev_key, NULL);
if (!r) if (!r)
return -EEXIST; return -EEXIST;
......
...@@ -366,7 +366,8 @@ static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key, ...@@ -366,7 +366,8 @@ static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key,
} while (!(flags & LEAF_NODE)); } while (!(flags & LEAF_NODE));
*result_key = le64_to_cpu(ro_node(s)->keys[i]); *result_key = le64_to_cpu(ro_node(s)->keys[i]);
memcpy(v, value_ptr(ro_node(s), i), value_size); if (v)
memcpy(v, value_ptr(ro_node(s), i), value_size);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment