From 7076d1439b07aa697717d90aa01c62288fef2652 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Fri, 23 Mar 2012 16:28:40 +0000 Subject: [PATCH] Fix pvmove if LV is activated exclusively but cmirror is not running. In this case we should allow to use local mirror, check for cmirror should apply only for lvconvert/lvcreate. Introduced in 2.02.86 by removing !(lv->status & ACTIVATE_EXCL). (Partially workaround, it is minimalistic patch for now.) --- WHATS_NEW | 1 + lib/metadata/mirror.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index 2d4e8503a..e70dc58a7 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.96 - ================================ + Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86) Always free hash table on update_pvid_to_vgid() in lvmetad. Update and fix monitoring of thin pool devices. Check hash insert success in lock_vg clvmd. diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c index 45295049e..236edea2f 100644 --- a/lib/metadata/mirror.c +++ b/lib/metadata/mirror.c @@ -2070,7 +2070,10 @@ int lv_add_mirrors(struct cmd_context *cmd, struct logical_volume *lv, if (vg_is_clustered(lv->vg)) { /* FIXME: review check of lv_is_active_remotely */ - if (!_cluster_mirror_is_available(lv)) { + /* FIXME: move this test out of this function */ + /* Skip test for pvmove mirrors, it can use local mirror */ + if (!(lv->status & (PVMOVE | LOCKED)) && + !_cluster_mirror_is_available(lv)) { log_error("Shared cluster mirrors are not available."); return 0; }