From c1fe5092c3017da2295f02bcd2d20e5a405c5d1b Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Fri, 21 May 2010 14:29:49 +0000 Subject: [PATCH] Replicator: lock_lv_vol() finds missing VGs Find and check for all needed VGs before calling lock_vol(). --- WHATS_NEW | 1 + lib/locking/locking.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index e9d28ec53..787ac8821 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.67 - =============================== + Check for missing VGs before taking lock_lv_vol (for Replicator). Update process_each_lv_in_vg() to use cmd_vg structure. Update _process_one_vg() to work with cmd_vg structure. Add functions for read and release VGs list. diff --git a/lib/locking/locking.h b/lib/locking/locking.h index 6d86d3c1a..d904cf228 100644 --- a/lib/locking/locking.h +++ b/lib/locking/locking.h @@ -130,7 +130,9 @@ int check_lvm1_vg_inactive(struct cmd_context *cmd, const char *vgname); (vg_is_clustered((lv)->vg) ? LCK_CLUSTER_VG : 0) #define lock_lv_vol(cmd, lv, flags) \ - lock_vol(cmd, (lv)->lvid.s, flags | LCK_LV_CLUSTERED(lv)) + (find_replicator_vgs((lv)) ? \ + lock_vol(cmd, (lv)->lvid.s, flags | LCK_LV_CLUSTERED(lv)) : \ + 0) #define unlock_vg(cmd, vol) lock_vol(cmd, vol, LCK_VG_UNLOCK) #define unlock_and_release_vg(cmd, vg, vol) \ -- 2.43.5