]> sourceware.org Git - lvm2.git/commitdiff
Drop pool memory allocated in lv_has_target_type
authorZdenek Kabelac <zkabelac@redhat.com>
Fri, 18 Nov 2011 19:42:03 +0000 (19:42 +0000)
committerZdenek Kabelac <zkabelac@redhat.com>
Fri, 18 Nov 2011 19:42:03 +0000 (19:42 +0000)
Remove FIXMES - there should not be any pool free call since
the memory pool is from device manager, and pool is detroyed
after the operation, so doing extra free here would not help here.

However lv_has_target_type() is using cmd mempool so here the extra
call for dm_pool_free makes sence.

WHATS_NEW
lib/activate/dev_manager.c

index eed8ec5eeeabf3647f782ae40f519995e42e4a95..10fca74c56381ceacad57900b35c24d687ed691d 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.89 - 
 ==================================
+  Drop pool memory allocated within lv_has_target_type().
   Reduce stack allocation of some PATH_MAX sized char buffers.
   Unlock memory before writing metadata.
   Add query before removing snapshots when inactive snapshot origin is removed.
index 4f7e6acbe6e256881fc84d459a54925b2c95e1e7..a89d681ee836d182176e6329e59add4eca61f68b 100644 (file)
@@ -411,7 +411,7 @@ int lv_has_target_type(struct dm_pool *mem, struct logical_volume *lv,
 
        if (!(dmt = _setup_task(NULL, dlid, 0,
                                DM_DEVICE_STATUS, 0, 0)))
-               return_0;
+               goto_bad;
 
        if (!dm_task_no_open_count(dmt))
                log_error("Failed to disable open_count");
@@ -433,8 +433,11 @@ int lv_has_target_type(struct dm_pool *mem, struct logical_volume *lv,
                }
        } while (next);
 
- out:
+out:
        dm_task_destroy(dmt);
+bad:
+       dm_pool_free(mem, dlid);
+
        return r;
 }
 
@@ -737,8 +740,6 @@ int dev_manager_snapshot_percent(struct dev_manager *dm,
                       NULL, fail_if_percent_unsupported)))
                return_0;
 
-       /* FIXME dm_pool_free ? */
-
        /* If the snapshot isn't available, percent will be -1 */
        return 1;
 }
@@ -760,8 +761,6 @@ int dev_manager_mirror_percent(struct dev_manager *dm,
        if (!(name = dm_build_dm_name(dm->mem, lv->vg->name, lv->name, layer)))
                return_0;
 
-       /* FIXME dm_pool_free ? */
-
        if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, layer))) {
                log_error("dlid build failed for %s", lv->name);
                return 0;
This page took 0.043194 seconds and 5 git commands to generate.