Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Cluster Development (http://www.linux-archive.org/cluster-development/)
-   -   rgmanager: Exit uncleanly only when CMAN_SHUTDOWN_ANYWAY is set (http://www.linux-archive.org/cluster-development/688144-rgmanager-exit-uncleanly-only-when-cman_shutdown_anyway-set.html)

Ryan McCabe 07-27-2012 05:07 PM

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

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
", 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

"Fabio M. Di Nitto" 07-27-2012 07:33 PM

rgmanager: Exit uncleanly only when CMAN_SHUTDOWN_ANYWAY is set
 
ACK

we will need an upstream/rhel6 equivalent too for this one. See my
comment in BZ.

Fabio

On 07/27/2012 07:07 PM, Ryan McCabe wrote:
> 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
", 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;
> }
>


All times are GMT. The time now is 11:09 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.