summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2018-07-23 19:20:18 +0200
committerHeinz Mauelshagen <heinzm@redhat.com>2018-07-23 19:35:34 +0200
commit2214dc12c34890c78b05456f58d0aa5d6dd08f4c (patch)
tree16b1529fd16c1a219d27e663db17ecc44502493c
parent778ce8d80830a60d258b419720be3e45a7ee9f0b (diff)
downloadlvm2-2214dc12c34890c78b05456f58d0aa5d6dd08f4c.tar.gz
lvconvert: reject conversions of LVs under snapshot
Conversions of LVs under snapshot to thinpool or cachepool correctly fail but leave them inactive and provide cryptic error messages like 'Internal error: #LVs (10) != #visible LVs (2) + #snapshots (1) + #internal LVs (5) in VG VG'. Reject and provide better error message. Resolves: rhbz1514146
-rw-r--r--tools/lvconvert.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 0bb1dc932..4871f7f90 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -4235,6 +4235,12 @@ static int _lvconvert_to_pool_or_swap_metadata_single(struct cmd_context *cmd,
return 0;
};
+ if (lv_is_origin(lv)) {
+ log_error("Cannot convert logical volume %s under snapshot.",
+ display_lvname(lv));
+ return 0;
+ };
+
if (cmd->position_argc > 1) {
/* First pos arg is required LV, remaining are optional PVs. */
if (!(use_pvh = create_pv_list(cmd->mem, lv->vg, cmd->position_argc - 1, cmd->position_argv + 1, 0)))