From 8623e336513c6ac6fcb24aa7e2ef10b8a3a36c59 Mon Sep 17 00:00:00 2001 From: David Teigland Date: Fri, 14 Jun 2019 10:25:00 -0500 Subject: [PATCH] lvconvert: disable linear to mirror of active LV in cluster VG Avoid bug 1711427 in which an exclusively active linear LV in a clustered VG, when upconverted to a mirror, will mistakenly use a userspace/cmirror log in _add_log() beause laopts.exclusive is not set. --- tools/lvconvert.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/lvconvert.c b/tools/lvconvert.c index bc666c0c9..fcbbd2640 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -863,6 +863,17 @@ static int _lvconvert_mirrors_aux(struct cmd_context *cmd, if (!lv_is_mirrored(lv)) { /* FIXME Share code with lvcreate */ + /* + * Avoid bug 1711427 in which an exclusively active linear LV in a + * clustered VG, when upconverted to a mirror, will mistakenly use + * a userspace/cmirror log in _add_log() beause laopts.exclusive is + * not set. + */ + if (vg_is_clustered(lv->vg) && lv_is_active(lv)) { + log_error("Cannot convert active LV to mirror in clustered VG."); + return 0; + } + /* * FIXME should we give not only pvh, but also all PVs * currently taken by the mirror? Would make more sense from