diff --git a/tools/lvconvert.c b/tools/lvconvert.c index c18b5a4d5..f4ee6605e 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -3826,6 +3826,12 @@ static int _lvconvert_to_cache_vol_single(struct cmd_context *cmd, goto out; } + if (cachepool_lv == lv) { + log_error("Use a different LV for cache pool LV and cache LV %s.", + display_lvname(cachepool_lv)); + goto out; + } + if (!_lvconvert_to_pool(cmd, cachepool_lv, lv, 0, 1, &vg->pvs)) { log_error("LV %s could not be converted to a cache pool.", display_lvname(cachepool_lv)); @@ -3924,6 +3930,12 @@ static int _lvconvert_to_thin_with_external_single(struct cmd_context *cmd, goto out; } + if (thinpool_lv == lv) { + log_error("Use a different LV for thin pool LV and thin LV %s.", + display_lvname(thinpool_lv)); + goto out; + } + if (!_lvconvert_to_pool(cmd, thinpool_lv, lv, 1, 0, &vg->pvs)) { log_error("LV %s could not be converted to a thin pool.", display_lvname(thinpool_lv));