From mboxrd@z Thu Jan 1 00:00:00 1970 From: pcaulfield@sourceware.org Date: 8 Feb 2008 14:09:30 -0000 Subject: [Cluster-devel] cluster/cman cman_tool/main.c daemon/cnxman-so ... Message-ID: <20080208140930.13993.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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