From 4991ccd3d88e5f56eaa8f467d423a30024eb45bb Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Sat, 26 Mar 2011 22:09:29 +1100 Subject: [PATCH] NOTIFYD: prevent duplicate quorate events. Signed-off-by: Angus Salkeld Reviewed-by: Steven Dake --- tools/corosync-notifyd.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/corosync-notifyd.c b/tools/corosync-notifyd.c index 4a58189d..7f231fa0 100644 --- a/tools/corosync-notifyd.c +++ b/tools/corosync-notifyd.c @@ -70,6 +70,8 @@ enum { }; static int conf[CS_NTF_MAX]; +static int32_t _cs_is_quorate = 0; + typedef void (*node_membership_fn_t)(char *nodename, uint32_t nodeid, char *state, char* ip); typedef void (*node_quorum_fn_t)(char *nodename, uint32_t nodeid, const char *state); typedef void (*application_connection_fn_t)(char *nodename, uint32_t nodeid, char *app_name, const char *state); @@ -365,6 +367,11 @@ static void _cs_quorum_notification(quorum_handle_t handle, uint32_t quorate, uint64_t ring_seq, uint32_t view_list_entries, uint32_t *view_list) { + if (_cs_is_quorate == quorate) { + return; + } + _cs_is_quorate = quorate; + if (quorate) { _cs_node_quorum_event("quorate"); } else {