Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: efcafee5e61ee01748d9f1d2d971f72def2ce089
Parent: a4ced3c53b65320f4c67ae5cd53a70e61a32e796
Author: Christine Caulfield <ccaulfie(a)redhat.com>
AuthorDate: Mon Aug 9 13:47:48 2010 -0400
Committer: Lon Hohberger <lhh(a)redhat.com>
CommitterDate: Tue Aug 10 14:53:51 2010 -0400
cman: Change flags to be values instead of bitmasks
Leaveflags was being evaluated as bitwise operations
when it should have been simple equality checks.
Resolves: rhbz#595394
Signed-off-by: Lon Hohberger <lhh(a)redhat.com>
---
cman/daemon/commands.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index b1b1c69..6ffe9e5 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -2,7 +2,7 @@
*******************************************************************************
**
** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
-** Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+** Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved.
**
** This copyrighted material is made available to anyone wishing to use,
** modify, copy, or redistribute it subject to the terms and conditions
@@ -842,12 +842,12 @@ static int do_cmd_leave_cluster(char *cmdbuf, int *retlen)
memcpy(&leave_flags, cmdbuf, sizeof(int));
/* Ignore the use count if FORCE is set */
- if (!(leave_flags & CLUSTER_LEAVEFLAG_FORCE)) {
+ if (!(leave_flags == CLUSTER_LEAVEFLAG_FORCE)) {
if (use_count)
return -ENOTCONN;
}
- us->leave_reason = leave_flags;
+ us->leave_reason = (leave_flags & 0xF);
quit_threads = 1;
/* No messaging available yet, just die */
@@ -875,7 +875,7 @@ static void check_shutdown_status()
shutdown_flags & SHUTDOWN_ANYWAY) {
quit_threads = 1;
if (shutdown_flags & SHUTDOWN_REMOVE)
- leaveflags |= CLUSTER_LEAVEFLAG_REMOVED;
+ leaveflags = CLUSTER_LEAVEFLAG_REMOVED;
send_leave(leaveflags);
reply = 0;
}
@@ -952,7 +952,7 @@ static int do_cmd_try_shutdown(struct connection *con, char *cmdbuf)
quit_threads = 1;
if (shutdown_flags & SHUTDOWN_REMOVE)
- leaveflags |= CLUSTER_LEAVEFLAG_REMOVED;
+ leaveflags = CLUSTER_LEAVEFLAG_REMOVED;
send_leave(leaveflags);
return 0;
@@ -2040,7 +2040,7 @@ void del_ais_node(int nodeid)
memset(&node->port_bits, 0, sizeof(node->port_bits));
cluster_members--;
- if ((node->leave_reason & 0xF) & CLUSTER_LEAVEFLAG_REMOVED)
+ if (node->leave_reason == CLUSTER_LEAVEFLAG_REMOVED)
recalculate_quorum(1, 1);
else
recalculate_quorum(0, 0);