]> sourceware.org Git - lvm2.git/commitdiff
activation: Fix segfault with inactive pvmove LV.
authorAlasdair G Kergon <agk@redhat.com>
Wed, 28 Aug 2013 21:56:23 +0000 (22:56 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Wed, 28 Aug 2013 21:56:23 +0000 (22:56 +0100)
Set flag to avoid recursion back through an inactive pvmove LV when
populating deptree.

WHATS_NEW
lib/activate/dev_manager.c

index d974b0ae81828fd6b61315b77d5e2271907d04c1..71e9fa8ebb093ea3f6ff5f939eef1dcd84c04d78 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,6 +1,7 @@
 Version 2.02.101 - 
 ===================================
-  Require exactly 3 arguments for lvm2-activation-generator, remove defaults.
+  Avoid unlimited recursion when creating dtree containing inactive pvmove LV.
+  Require exactly 3 arguments for lvm2-activation-generator. Remove defaults.
   Disable pvmove of merging or converting logical volumes.
   Enable pvmove of snapshots and snapshot origins.
   Fix inability to specify LV name when pvmove'ing a RAID, mirror, or thin-LV.
index 294606cc9301c4ee6ed3c674be58103b364ad04f..11be4216673f73fa9b7118fb1173b48a612e7e8a 100644 (file)
@@ -1763,11 +1763,13 @@ static int _add_lv_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
                                return_0;
 
        /* Add any LVs referencing a PVMOVE LV unless told not to. */
-       if (dm->track_pvmove_deps && lv->status & PVMOVE)
+       if (dm->track_pvmove_deps && lv->status & PVMOVE) {
+               dm->track_pvmove_deps = 0;
                dm_list_iterate_items(sl, &lv->segs_using_this_lv)
-                       if (!_cached_info(dm->mem, dtree, sl->seg->lv, 0) &&
-                           !_add_lv_to_dtree(dm, dtree, sl->seg->lv, origin_only))
+                       if (!_add_lv_to_dtree(dm, dtree, sl->seg->lv, origin_only))
                                return_0;
+               dm->track_pvmove_deps = 1;
+       }
 
        /* Adding LV head of replicator adds all other related devs */
        if (lv_is_replicator_dev(lv) &&
This page took 0.07842 seconds and 5 git commands to generate.