summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2014-11-10 22:32:43 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2014-11-10 22:32:43 +0100
commita7fc1082987c3d5842664fd7817ec01e1ddec9cc (patch)
tree99ee8a714f4c8eb6181b32c962f53d6360952076
parent094596cfd2001a8714923dd87abb2feacd116a13 (diff)
downloadlvm2-a7fc1082987c3d5842664fd7817ec01e1ddec9cc.tar.gz
mirror: layer remove doesn't work properly with mirrors
-rw-r--r--lib/metadata/lv_manip.c17
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;
}