From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lon Hohberger Date: Fri, 4 Feb 2011 11:21:40 -0500 Subject: [Cluster-devel] [PATCH] qdiskd: Fix auto-vote calculation loop Message-ID: <1296836500-5221-1-git-send-email-lhh@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Resolves: rhbz#663433 Signed-off-by: Lon Hohberger --- cman/qdisk/disk.c | 1 + cman/qdisk/main.c | 31 ++++++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/cman/qdisk/disk.c b/cman/qdisk/disk.c index 1f646ce..9884ea7 100644 --- a/cman/qdisk/disk.c +++ b/cman/qdisk/disk.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/cman/qdisk/main.c b/cman/qdisk/main.c index ebdb018..9262af2 100644 --- a/cman/qdisk/main.c +++ b/cman/qdisk/main.c @@ -1377,32 +1377,33 @@ auto_qdisk_votes(int desc) { int ret = 1; char buf[PATH_MAX]; - char *name; + char *v = NULL, *name = NULL; while (1) { int votes=0; + name = NULL; + snprintf(buf, sizeof(buf)-1, + "/cluster/clusternodes/clusternode[%d]/@name", ret); + if (ccs_get(desc, buf, &name) != 0) + break; + snprintf(buf, sizeof(buf)-1, "/cluster/clusternodes/clusternode[%d]/@votes", ret); - name = NULL; - if (ccs_get(desc, buf, &name) == 0) - votes = atoi(name); - else + if (ccs_get(desc, buf, &v) == 0) { + votes = atoi(v); + free(v); + v = NULL; + } else { votes = 1; + } if (votes != 1) { - free(name); - snprintf(buf, sizeof(buf)-1, - "/cluster/clusternodes/clusternode[%d]/@name", - ret); - - if (ccs_get(desc, buf, &name) == 0) { - logt_print(LOG_ERR, "%s's vote count is %d\n", - name, votes); - free(name); - } + logt_print(LOG_ERR, "%s's vote count is %d\n", + name, votes); + free(name); logt_print(LOG_ERR, "Set all node vote counts to 1 " "or specify qdiskd's votes\n"); -- 1.7.2.3