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: Huaisheng Ye <yehs1@lenovo.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
f0e90b6c66
commit
399c9bdbd6
@ -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,
|
|||||||
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,
|
|||||||
} 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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user