dm thin metadata: Remove unused local variable when create thin and snap
authorHuaisheng Ye <yehs1@lenovo.com>
Tue, 15 Sep 2020 08:56:08 +0000 (16:56 +0800)
committerMike Snitzer <snitzer@redhat.com>
Tue, 29 Sep 2020 20:33:11 +0000 (16:33 -0400)
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>
drivers/md/dm-thin-metadata.c
drivers/md/persistent-data/dm-btree.c

index b461836..6ebb212 100644 (file)
@@ -1051,12 +1051,11 @@ static int __create_thin(struct dm_pool_metadata *pmd,
        int r;
        dm_block_t dev_root;
        uint64_t key = dev;
-       struct disk_device_details details_le;
        struct dm_thin_device *td;
        __le64 value;
 
        r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
-                           &key, &details_le);
+                           &key, NULL);
        if (!r)
                return -EEXIST;
 
@@ -1129,12 +1128,11 @@ static int __create_snap(struct dm_pool_metadata *pmd,
        dm_block_t origin_root;
        uint64_t key = origin, dev_key = dev;
        struct dm_thin_device *td;
-       struct disk_device_details details_le;
        __le64 value;
 
        /* check this device is unused */
        r = dm_btree_lookup(&pmd->details_info, pmd->details_root,
-                           &dev_key, &details_le);
+                           &dev_key, NULL);
        if (!r)
                return -EEXIST;
 
index 8aae062..ef6e78d 100644 (file)
@@ -366,7 +366,8 @@ static int btree_lookup_raw(struct ro_spine *s, dm_block_t block, uint64_t key,
        } while (!(flags & LEAF_NODE));
 
        *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;
 }