diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2014-11-10 22:32:43 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2014-11-10 22:32:43 +0100 |
commit | a7fc1082987c3d5842664fd7817ec01e1ddec9cc (patch) | |
tree | 99ee8a714f4c8eb6181b32c962f53d6360952076 | |
parent | 094596cfd2001a8714923dd87abb2feacd116a13 (diff) | |
download | lvm2-a7fc1082987c3d5842664fd7817ec01e1ddec9cc.tar.gz |
mirror: layer remove doesn't work properly with mirrors
-rw-r--r-- | lib/metadata/lv_manip.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 220f89463..20bf76f33 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -6007,14 +6007,15 @@ int remove_layer_from_lv(struct logical_volume *lv, * currently supported only for thin data layer * FIXME: without strcmp it breaks mirrors.... */ - for (r = 0; r < DM_ARRAY_SIZE(_suffixes); ++r) - if (strstr(layer_lv->name, _suffixes[r]) == 0) { - lv_names.old = layer_lv->name; - lv_names.new = parent_lv->name; - if (!for_each_sub_lv(parent_lv, _rename_cb, (void *) &lv_names)) - return_0; - break; - } + if (!strstr(layer_lv->name, "_mimage")) + for (r = 0; r < DM_ARRAY_SIZE(_suffixes); ++r) + if (strstr(layer_lv->name, _suffixes[r]) == 0) { + lv_names.old = layer_lv->name; + lv_names.new = parent_lv->name; + if (!for_each_sub_lv(parent_lv, _rename_cb, (void *) &lv_names)) + return_0; + break; + } return 1; } |