Don't deactivate origin when deactivating a snapshot. Populate the deptree selectivaly according to the action performed. Signed-off-by: Mikulas Patocka --- lib/activate/dev_manager.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: LVM2.2.02.53/lib/activate/dev_manager.c =================================================================== --- LVM2.2.02.53.orig/lib/activate/dev_manager.c 2009-10-13 23:19:24.000000000 +0200 +++ LVM2.2.02.53/lib/activate/dev_manager.c 2009-10-13 23:19:30.000000000 +0200 @@ -837,7 +837,7 @@ static int _add_lv_to_dtree(struct dev_m return 1; } -static struct dm_tree *_create_partial_dtree(struct dev_manager *dm, struct logical_volume *lv) +static struct dm_tree *_create_partial_dtree(struct dev_manager *dm, struct logical_volume *lv, int action) { struct dm_tree *dtree; struct dm_list *snh, *snht; @@ -864,7 +864,7 @@ static struct dm_tree *_create_partial_d if (!_add_lv_to_dtree(dm, dtree, seg_lv(seg, s))) goto_bad; } - if (seg->origin) + if ((action == PRELOAD || action == ACTIVATE) && seg->origin) _add_lv_to_dtree(dm, dtree, seg->origin); } @@ -1333,7 +1333,7 @@ static int _tree_action(struct dev_manag char *dlid; int r = 0; - if (!(dtree = _create_partial_dtree(dm, lv))) + if (!(dtree = _create_partial_dtree(dm, lv, action))) return_0; if (!(root = dm_tree_find_node(dtree, 0, 0))) {