[lvm-devel] LVM2 ./WHATS_NEW daemons/clvmd/lvm-functions.c ...
snitzer at sourceware.org
snitzer at sourceware.org
Fri Mar 26 15:40:15 UTC 2010
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: snitzer at sourceware.org 2010-03-26 15:40:14
Modified files:
. : WHATS_NEW
daemons/clvmd : lvm-functions.c
lib/locking : cluster_locking.c
Log message:
Fix clvmd cluster propagation of dmeventd monitoring mode.
clvmd's do_lock_lv() already properly controls dmeventd monitoring based
on LCK_DMEVENTD_MONITOR_MODE in lock_flags -- though one small fix was
needed for this to work: _lock_for_cluster() must treat
dmeventd_monitor_mode()'s return as a tri-state value.
Also cleanup do_lock_lv() to:
- explicitly init_dmeventd_monitor() based on LCK_DMEVENTD_MONITOR_MODE
- no longer reset init_dmeventd_monitor() to default at the end of
do_lock_lv() -- it is unnecessary
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1482&r2=1.1483
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/lvm-functions.c.diff?cvsroot=lvm2&r1=1.86&r2=1.87
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/cluster_locking.c.diff?cvsroot=lvm2&r1=1.40&r2=1.41
--- LVM2/WHATS_NEW 2010/03/25 21:19:26 1.1482
+++ LVM2/WHATS_NEW 2010/03/26 15:40:13 1.1483
@@ -1,5 +1,6 @@
Version 2.02.63 -
================================
+ Fix clvmd cluster propagation of dmeventd monitoring mode.
Allow ALLOC_ANYWHERE to split contiguous areas.
Use INTERNAL_ERROR for internal errors throughout tree.
Add some assertions to allocation code.
--- LVM2/daemons/clvmd/lvm-functions.c 2010/03/24 22:25:11 1.86
+++ LVM2/daemons/clvmd/lvm-functions.c 2010/03/26 15:40:14 1.87
@@ -499,7 +499,9 @@
if (lock_flags & LCK_MIRROR_NOSYNC_MODE)
init_mirror_in_sync(1);
- if (!(lock_flags & LCK_DMEVENTD_MONITOR_MODE))
+ if (lock_flags & LCK_DMEVENTD_MONITOR_MODE)
+ init_dmeventd_monitor(1);
+ else
init_dmeventd_monitor(0);
cmd->partial_activation = (lock_flags & LCK_PARTIAL_MODE) ? 1 : 0;
@@ -542,9 +544,6 @@
if (lock_flags & LCK_MIRROR_NOSYNC_MODE)
init_mirror_in_sync(0);
- if (!(lock_flags & LCK_DMEVENTD_MONITOR_MODE))
- init_dmeventd_monitor(DEFAULT_DMEVENTD_MONITOR);
-
cmd->partial_activation = 0;
/* clean the pool for another command */
--- LVM2/lib/locking/cluster_locking.c 2010/01/05 16:07:57 1.40
+++ LVM2/lib/locking/cluster_locking.c 2010/03/26 15:40:14 1.41
@@ -307,6 +307,7 @@
char *args;
const char *node = "";
int len;
+ int dmeventd_mode;
int saved_errno = errno;
lvm_response_t *response = NULL;
int num_responses;
@@ -324,7 +325,12 @@
if (mirror_in_sync())
args[1] |= LCK_MIRROR_NOSYNC_MODE;
- if (dmeventd_monitor_mode())
+ /*
+ * Must handle tri-state return from dmeventd_monitor_mode.
+ * But DMEVENTD_MONITOR_IGNORE is not propagated across the cluster.
+ */
+ dmeventd_mode = dmeventd_monitor_mode();
+ if (dmeventd_mode != DMEVENTD_MONITOR_IGNORE && dmeventd_mode)
args[1] |= LCK_DMEVENTD_MONITOR_MODE;
if (cmd->partial_activation)
More information about the lvm-devel
mailing list