[Cluster-devel] cluster/cman/qdisk main.c
fabbione at sourceware.org
fabbione at sourceware.org
Thu Nov 1 00:25:28 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: fabbione at sourceware.org 2007-11-01 00:25:28
Modified files:
cman/qdisk : main.c
Log message:
If votes for quorumd is _not_ specified in cluster.conf, then
automatically set votes to number of nodes - 1.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/qdisk/main.c.diff?cvsroot=cluster&r1=1.10&r2=1.11
--- cluster/cman/qdisk/main.c 2007/03/20 19:37:24 1.10
+++ cluster/cman/qdisk/main.c 2007/11/01 00:25:28 1.11
@@ -1209,14 +1209,30 @@
}
if (ctx->qc_master_wait <= ctx->qc_tko_up)
ctx->qc_master_wait = ctx->qc_tko_up + 1;
-
+
/* Get votes */
+
+ /* check if votes is set in cluster.conf */
snprintf(query, sizeof(query), "/cluster/quorumd/@votes");
if (ccs_get(ccsfd, query, &val) == 0) {
ctx->qc_votes = atoi(val);
free(val);
if (ctx->qc_votes < 0)
ctx->qc_votes = 0;
+ } else { /* if votes is not set, default to node_num - 1 */
+ int nodes = 0, error;
+ for (;;) {
+ error = ccs_get_list(ccsfd, "/cluster/clusternodes/child::*", &val);
+ if (error || !val)
+ break;
+
+ nodes++;
+ }
+ nodes--;
+ if (nodes < 0)
+ nodes = 0;
+
+ ctx->qc_votes = nodes;
}
/* Get device */
More information about the Cluster-devel
mailing list