This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cluster Project branch, master, updated. gfs-kernel_0_1_22-161-gb4d82fb


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Cluster Project".

http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=b4d82fbfeb6ce28ef68a3552e9cfc408df177af9

The branch, master has been updated
       via  b4d82fbfeb6ce28ef68a3552e9cfc408df177af9 (commit)
      from  53707236b407fee094f1135df445670cbed15f00 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b4d82fbfeb6ce28ef68a3552e9cfc408df177af9
Author: Christine Caulfield <ccaulfie@redhat.com>
Date:   Mon Apr 14 13:28:59 2008 +0100

    [CMAN] Save the new expected_votes when a node is removed
    
    When a node leaves the cluster using 'cman_tool leave remove' it reduces
    the quorum of the cluster to accomodate the loss of the node. Unfortunately
    the following transition messages raise quorum back to its original value
    again because of the bug fix for bz#308581, so it appears that the
    remove hasn't worked.
    
    Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>

-----------------------------------------------------------------------

Summary of changes:
 cman/daemon/commands.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index c15f1a7..27e6697 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -295,8 +295,10 @@ static int calculate_quorum(int allow_decrease, int max_expected, unsigned int *
 		node = list_item(nodelist, struct cluster_node);
 
 		if (node->state == NODESTATE_MEMBER) {
-			highest_expected =
-				max(highest_expected, node->expected_votes);
+			if (max_expected)
+				node->expected_votes = max_expected;
+			else
+				highest_expected = max(highest_expected, node->expected_votes);
 			total_votes += node->votes;
 			total_nodes++;
 		}
@@ -2089,7 +2091,8 @@ void del_ais_node(int nodeid)
 		node->state = NODESTATE_DEAD;
 		cluster_members--;
 
-		if ((node->leave_reason & 0xF) & CLUSTER_LEAVEFLAG_REMOVED)
+		P_MEMB("del_ais_node %s, leave_reason=%x\n", node->name, node->leave_reason);
+		if ((node->leave_reason & 0xF) == CLUSTER_LEAVEFLAG_REMOVED)
 			recalculate_quorum(1, 1);
 		else
 			recalculate_quorum(0, 0);


hooks/post-receive
--
Cluster Project


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]