cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: pcaulfield@sourceware.org <pcaulfield@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/cman cman_tool/main.c daemon/cnxman-so ...
Date: 8 Feb 2008 14:09:30 -0000	[thread overview]
Message-ID: <20080208140930.13993.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	pcaulfield at sourceware.org	2008-02-08 14:09:28

Modified files:
	cman/cman_tool : main.c 
	cman/daemon    : cnxman-socket.h commands.c 
	cman/lib       : libcman.c libcman.h 

Log message:
	Implement a nicer way of getting the quorum disk information.
	The libcman API remains the same but the connection to cman itself
	works using the normal GETNODE call.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/cman_tool/main.c.diff?cvsroot=cluster&r1=1.61&r2=1.62
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/cnxman-socket.h.diff?cvsroot=cluster&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/daemon/commands.c.diff?cvsroot=cluster&r1=1.83&r2=1.84
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/lib/libcman.c.diff?cvsroot=cluster&r1=1.41&r2=1.42
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/lib/libcman.h.diff?cvsroot=cluster&r1=1.39&r2=1.40

--- cluster/cman/cman_tool/main.c	2007/12/05 14:28:58	1.61
+++ cluster/cman/cman_tool/main.c	2008/02/08 14:09:27	1.62
@@ -201,7 +201,7 @@
 	char info_buf[PIPE_BUF];
 	char tmpbuf[1024];
 	cman_extra_info_t *einfo = (cman_extra_info_t *)info_buf;
-	cman_qdev_info qinfo;
+	cman_qdev_info_t qinfo;
 	int quorate;
 	int i;
 	int j;
@@ -229,7 +229,7 @@
 							  einfo->ei_node_state));
 	printf("Nodes: %d\n", einfo->ei_members);
 	printf("Expected votes: %d\n", einfo->ei_expected_votes);
-	if (cman_get_quorum_device(h, &qinfo) == 0 && qinfo.qi_state == 1)
+	if (cman_get_quorum_device(h, &qinfo) == 0 && qinfo.qi_state == 2)
 		printf("Quorum device votes: %d\n", qinfo.qi_votes);
 	printf("Total votes: %d\n", einfo->ei_total_votes);
 
--- cluster/cman/daemon/cnxman-socket.h	2007/12/05 14:28:58	1.21
+++ cluster/cman/daemon/cnxman-socket.h	2008/02/08 14:09:28	1.22
@@ -54,7 +54,6 @@
 #define CMAN_CMD_STOP_CONFCHG       0x000000c1
 #define CMAN_CMD_SET_DIRTY          0x800000c2
 #define CMAN_CMD_SET_DEBUGLOG       0x800000c3
-#define CMAN_CMD_GET_QUORUMDEV      0x000000c4
 
 #define CMAN_CMD_DATA               0x00000100
 #define CMAN_CMD_BIND               0x00000101
--- cluster/cman/daemon/commands.c	2008/02/04 10:54:26	1.83
+++ cluster/cman/daemon/commands.c	2008/02/08 14:09:28	1.84
@@ -1024,21 +1024,6 @@
         return 0;
 }
 
-static int do_cmd_get_quorum_device(char *cmdbuf, char *retbuf, int *retlen)
-{
-	struct cl_qdev_info *qdi = (struct cl_qdev_info *)retbuf;
-
-        if (!quorum_device)
-                return -EINVAL;
-
-	strcpy(qdi->name, quorum_device->name);
-	qdi->state = (quorum_device->state == NODESTATE_MEMBER);
-	qdi->votes = quorum_device->votes;
-	*retlen = sizeof(struct cl_qdev_info);
-
-	return 0;
-}
-
 static void ccsd_timer_fn(void *arg)
 {
 	int ccs_err;
@@ -1291,10 +1276,6 @@
 		err = do_cmd_get_cluster(cmdbuf, outbuf+offset, retlen);
 		break;
 
-	case CMAN_CMD_GET_QUORUMDEV:
-		err = do_cmd_get_quorum_device(cmdbuf, outbuf+offset, retlen);
-		break;
-
 	case CMAN_CMD_GETEXTRAINFO:
 		err = do_cmd_get_extrainfo(cmdbuf, retbuf, retsize, retlen, offset);
 		break;
--- cluster/cman/lib/libcman.c	2008/01/07 18:53:14	1.41
+++ cluster/cman/lib/libcman.c	2008/02/08 14:09:28	1.42
@@ -1041,14 +1041,15 @@
 {
 	struct cman_handle *h = (struct cman_handle *)handle;
 	int ret;
-	struct cl_qdev_info q;
+	struct cl_cluster_node cman_node;
 	VALIDATE_HANDLE(h);
 
-	ret = info_call(h, CMAN_CMD_GET_QUORUMDEV, NULL, 0, &q, sizeof(q));
+	cman_node.node_id = CLUSTER_GETNODE_QUORUMDEV;
+	ret = info_call(h, CMAN_CMD_GETNODE, &cman_node, sizeof(cman_node), &cman_node, sizeof(cman_node));
 	if (!ret) {
-		strcpy(info->qi_name, q.name);
-		info->qi_state = q.state;
-		info->qi_votes = q.votes;
+		strcpy(info->qi_name, cman_node.name);
+		info->qi_state = cman_node.state;
+		info->qi_votes = cman_node.votes;
 	}
 	return ret;
 }
--- cluster/cman/lib/libcman.h	2007/12/11 10:48:01	1.39
+++ cluster/cman/lib/libcman.h	2008/02/08 14:09:28	1.40
@@ -186,7 +186,7 @@
 	char qi_name[CMAN_MAX_NODENAME_LEN+1];
 	int  qi_state;
 	int  qi_votes;
-} cman_qdev_info;
+} cman_qdev_info_t;
 
 /*
  * NOTE: Apart from cman_replyto_shutdown(), you must not



             reply	other threads:[~2008-02-08 14:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-08 14:09 pcaulfield [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-12-05 14:28 [Cluster-devel] cluster/cman cman_tool/main.c daemon/cnxman-so pcaulfield
2007-09-17 13:48 pcaulfield
2007-08-28 13:14 pcaulfield

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080208140930.13993.qmail@sourceware.org \
    --to=pcaulfield@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).