summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-02-17 11:09:41 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-02-17 11:56:13 +0100
commit5acbd709c18eab8ae455d0002892e756ed18fa13 (patch)
tree89021a32ec859a8ecc37ff97998821b6a844dfc2
parent1f6c287aaca04aa1a791c341cbff7b6cbff9a29b (diff)
downloadlvm2-5acbd709c18eab8ae455d0002892e756ed18fa13.tar.gz
lv_manip: avoid removing LV when converting
In some cases we use 'creation' also during conversion. Here it can be actually unwanted side effect we may remove not just newly created layers - but also original converted LV. So until we make clear how to properly revert from some errors in middle of conversion, disable removal for any 'lvconvert' commands.
-rw-r--r--lib/metadata/lv_manip.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index e9ce8cd28..8dd3e7140 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -8334,7 +8334,9 @@ revert_new_lv:
lockd_free_lv(vg->cmd, vg, lv->name, &lv->lvid.id[1], lv->lock_args);
/* FIXME Better to revert to backup of metadata? */
- if (!lv_remove(lv) || !vg_write(vg) || !vg_commit(vg))
+ /* Do not remove anything for create during conversion operation */
+ if (!strncmp(cmd->name, "lvconvert", 9) ||
+ !lv_remove(lv) || !vg_write(vg) || !vg_commit(vg))
log_error("Manual intervention may be required to remove "
"abandoned LV(s) before retrying.");
else