Gitweb: http://git.fedorahosted.org/git/?p=cluster.git;a=commitdiff;h=0c5ff64499bbb5... Commit: 0c5ff64499bbb510a83afab6a7180185e08060f9 Parent: 01d917b0f2bb773ae62c2eb320e9877647803b70 Author: Ryan McCabe rmccabe@redhat.com AuthorDate: Fri Jul 27 13:03:04 2012 -0400 Committer: Ryan McCabe rmccabe@redhat.com CommitterDate: Fri Jul 27 15:54:51 2012 -0400
rgmanager: Exit uncleanly only when CMAN_SHUTDOWN_ANYWAY is set
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
Acked-by: Fabio M. Di Nitto fdinitto@redhat.com Signed-off-by: Ryan McCabe rmccabe@redhat.com --- rgmanager/src/clulib/msg_cluster.c | 6 ++++-- 1 files 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; }
cluster-commits@lists.stg.fedorahosted.org