All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] [PATCH] rgmanager: Exit uncleanly only when CMAN_SHUTDOWN_ANYWAY is set
@ 2012-07-27 17:07 Ryan McCabe
  2012-07-27 19:33 ` Fabio M. Di Nitto
  0 siblings, 1 reply; 2+ messages in thread
From: Ryan McCabe @ 2012-07-27 17:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Only exit uncleanly when the CMAN_SHUTDOWN_ANYWAY flag is set in the
argument passed when handling the CMAN_REASON_TRY_SHUTDOWN event.

This fixes the case where args is 2, where we want to refuse to
shut down.

Resolves: rhbz#769730

Signed-off-by: Ryan McCabe <rmccabe@redhat.com>
---
 rgmanager/src/clulib/msg_cluster.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/rgmanager/src/clulib/msg_cluster.c b/rgmanager/src/clulib/msg_cluster.c
index e864853..e4b6b39 100644
--- a/rgmanager/src/clulib/msg_cluster.c
+++ b/rgmanager/src/clulib/msg_cluster.c
@@ -211,7 +211,7 @@ poll_cluster_messages(int timeout)
 
 		if (cman_dispatch(ch, 0) < 0) {
 			process_cman_event(ch, NULL,
-					   CMAN_REASON_TRY_SHUTDOWN, 1);
+			   CMAN_REASON_TRY_SHUTDOWN, CMAN_SHUTDOWN_ANYWAY);
 		}
 		ret = 0;
 	}
@@ -987,7 +987,9 @@ process_cman_event(cman_handle_t handle, void *private, int reason, int arg)
 	printf("EVENT: %p %p %d %d\n", handle, private, reason, arg);
 #endif
 
-	if (reason == CMAN_REASON_TRY_SHUTDOWN && !arg) {
+	if (reason == CMAN_REASON_TRY_SHUTDOWN &&
+	    !(arg & CMAN_SHUTDOWN_ANYWAY))
+	{
 		cman_replyto_shutdown(handle, 0);
 		return;
 	}
-- 
1.7.11.2



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-07-27 19:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-27 17:07 [Cluster-devel] [PATCH] rgmanager: Exit uncleanly only when CMAN_SHUTDOWN_ANYWAY is set Ryan McCabe
2012-07-27 19:33 ` Fabio M. Di Nitto

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.