Re: [PATCH] votequorum: rename qdisk to qdevice

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks good

Also if nobody ever changed the so number of the votequorum api, now
would be a good time to rev it since we removed APIs and changed the ABI.

Regards
-steve

Reviewed-by: Steven Dake <sdake@xxxxxxxxxx>

On 01/27/2012 02:49 AM, Fabio M. Di Nitto wrote:
> From: "Fabio M. Di Nitto" <fdinitto@xxxxxxxxxx>
> 
> a quorum device is not necessarely a disk and this also aligns
> various names to be generic
> 
> Signed-off-by: Fabio M. Di Nitto <fdinitto@xxxxxxxxxx>
> ---
>  exec/votequorum.c                   |   58 +++++++++++++-------------
>  include/corosync/ipc_votequorum.h   |   22 +++++-----
>  include/corosync/votequorum.h       |   16 ++++----
>  lib/libvotequorum.versions          |    8 ++--
>  lib/votequorum.c                    |   56 ++++++++++++------------
>  man/Makefile.am                     |   10 ++--
>  man/index.html                      |   14 ++++---
>  man/votequorum_overview.8           |    8 ++--
>  man/votequorum_qdevice_getinfo.3    |   80 +++++++++++++++++++++++++++++++++++
>  man/votequorum_qdevice_poll.3       |   69 ++++++++++++++++++++++++++++++
>  man/votequorum_qdevice_register.3   |   68 +++++++++++++++++++++++++++++
>  man/votequorum_qdevice_unregister.3 |   60 ++++++++++++++++++++++++++
>  man/votequorum_qdisk_getinfo.3      |   80 -----------------------------------
>  man/votequorum_qdisk_poll.3         |   69 ------------------------------
>  man/votequorum_qdisk_register.3     |   68 -----------------------------
>  man/votequorum_qdisk_unregister.3   |   60 --------------------------
>  test/testvotequorum2.c              |   22 +++++-----
>  17 files changed, 385 insertions(+), 383 deletions(-)
>  create mode 100644 man/votequorum_qdevice_getinfo.3
>  create mode 100644 man/votequorum_qdevice_poll.3
>  create mode 100644 man/votequorum_qdevice_register.3
>  create mode 100644 man/votequorum_qdevice_unregister.3
>  delete mode 100644 man/votequorum_qdisk_getinfo.3
>  delete mode 100644 man/votequorum_qdisk_poll.3
>  delete mode 100644 man/votequorum_qdisk_register.3
>  delete mode 100644 man/votequorum_qdisk_unregister.3
> 
> diff --git a/exec/votequorum.c b/exec/votequorum.c
> index 798746a..79ac459 100644
> --- a/exec/votequorum.c
> +++ b/exec/votequorum.c
> @@ -68,7 +68,7 @@ static struct corosync_api_v1 *corosync_api;
>  #define DEFAULT_QDEV_POLL 10000
>  
>  static unsigned int quorumdev_poll = DEFAULT_QDEV_POLL;
> -static char quorum_device_name[VOTEQUORUM_MAX_QDISK_NAME_LEN];
> +static char quorum_device_name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
>  #endif
>  
>  static uint8_t two_node = 0;
> @@ -136,7 +136,7 @@ static int votequorum_exec_send_reconfigure(uint8_t param, unsigned int nodeid,
>   */
>  
>  #define NODE_FLAGS_BEENDOWN         1
> -#define NODE_FLAGS_QDISK            8
> +#define NODE_FLAGS_QDEVICE          8
>  #define NODE_FLAGS_REMOVED         16
>  #define NODE_FLAGS_US              32
>  
> @@ -266,16 +266,16 @@ static void message_handler_req_lib_votequorum_trackstop (void *conn,
>  							  const void *message);
>  
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
> -static void message_handler_req_lib_votequorum_qdisk_register (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_register (void *conn,
>  							       const void *message);
>  
> -static void message_handler_req_lib_votequorum_qdisk_unregister (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_unregister (void *conn,
>  								 const void *message);
>  
> -static void message_handler_req_lib_votequorum_qdisk_poll (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_poll (void *conn,
>  							   const void *message);
>  
> -static void message_handler_req_lib_votequorum_qdisk_getinfo (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_getinfo (void *conn,
>  							      const void *message);
>  #endif
>  
> @@ -303,19 +303,19 @@ static struct corosync_lib_handler quorum_lib_service[] =
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
>  	},
>  	{ /* 5 */
> -		.lib_handler_fn		= message_handler_req_lib_votequorum_qdisk_register,
> +		.lib_handler_fn		= message_handler_req_lib_votequorum_qdevice_register,
>  		.flow_control		= COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED
>  	},
>  	{ /* 6 */
> -		.lib_handler_fn		= message_handler_req_lib_votequorum_qdisk_unregister,
> +		.lib_handler_fn		= message_handler_req_lib_votequorum_qdevice_unregister,
>  		.flow_control		= COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED
>  	},
>  	{ /* 7 */
> -		.lib_handler_fn		= message_handler_req_lib_votequorum_qdisk_poll,
> +		.lib_handler_fn		= message_handler_req_lib_votequorum_qdevice_poll,
>  		.flow_control		= COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED
>  	},
>  	{ /* 8 */
> -		.lib_handler_fn		= message_handler_req_lib_votequorum_qdisk_getinfo,
> +		.lib_handler_fn		= message_handler_req_lib_votequorum_qdevice_getinfo,
>  		.flow_control		= COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED
>  #endif
>  	}
> @@ -1575,10 +1575,10 @@ static void message_handler_req_lib_votequorum_trackstop (void *conn,
>  }
>  
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
> -static void message_handler_req_lib_votequorum_qdisk_register (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_register (void *conn,
>  							       const void *message)
>  {
> -	const struct req_lib_votequorum_qdisk_register *req_lib_votequorum_qdisk_register = message;
> +	const struct req_lib_votequorum_qdevice_register *req_lib_votequorum_qdevice_register = message;
>  	struct res_lib_votequorum_status res_lib_votequorum_status;
>  	cs_error_t error = CS_OK;
>  
> @@ -1589,8 +1589,8 @@ static void message_handler_req_lib_votequorum_qdisk_register (void *conn,
>  	} else {
>  		quorum_device = allocate_node(0);
>  		quorum_device->state = NODESTATE_DEAD;
> -		quorum_device->votes = req_lib_votequorum_qdisk_register->votes;
> -		strcpy(quorum_device_name, req_lib_votequorum_qdisk_register->name);
> +		quorum_device->votes = req_lib_votequorum_qdevice_register->votes;
> +		strcpy(quorum_device_name, req_lib_votequorum_qdevice_register->name);
>  		list_add(&quorum_device->list, &cluster_members_list);
>  	}
>  
> @@ -1602,7 +1602,7 @@ static void message_handler_req_lib_votequorum_qdisk_register (void *conn,
>  	LEAVE();
>  }
>  
> -static void message_handler_req_lib_votequorum_qdisk_unregister (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_unregister (void *conn,
>  								 const void *message)
>  {
>  	struct res_lib_votequorum_status res_lib_votequorum_status;
> @@ -1629,17 +1629,17 @@ static void message_handler_req_lib_votequorum_qdisk_unregister (void *conn,
>  	LEAVE();
>  }
>  
> -static void message_handler_req_lib_votequorum_qdisk_poll (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_poll (void *conn,
>  							   const void *message)
>  {
> -	const struct req_lib_votequorum_qdisk_poll *req_lib_votequorum_qdisk_poll = message;
> +	const struct req_lib_votequorum_qdevice_poll *req_lib_votequorum_qdevice_poll = message;
>  	struct res_lib_votequorum_status res_lib_votequorum_status;
>  	cs_error_t error = CS_OK;
>  
>  	ENTER();
>  
>  	if (quorum_device) {
> -		if (req_lib_votequorum_qdisk_poll->state) {
> +		if (req_lib_votequorum_qdevice_poll->state) {
>  			quorum_device->last_hello = qb_util_nano_current_get ();
>  			if (quorum_device->state == NODESTATE_DEAD) {
>  				quorum_device->state = NODESTATE_MEMBER;
> @@ -1670,31 +1670,31 @@ static void message_handler_req_lib_votequorum_qdisk_poll (void *conn,
>  	LEAVE();
>  }
>  
> -static void message_handler_req_lib_votequorum_qdisk_getinfo (void *conn,
> +static void message_handler_req_lib_votequorum_qdevice_getinfo (void *conn,
>  							      const void *message)
>  {
> -	struct res_lib_votequorum_qdisk_getinfo res_lib_votequorum_qdisk_getinfo;
> +	struct res_lib_votequorum_qdevice_getinfo res_lib_votequorum_qdevice_getinfo;
>  	cs_error_t error = CS_OK;
>  
>  	ENTER();
>  
>  	if (quorum_device) {
> -		log_printf(LOGSYS_LEVEL_DEBUG, "got qdisk_getinfo state %d", quorum_device->state);
> -		res_lib_votequorum_qdisk_getinfo.votes = quorum_device->votes;
> +		log_printf(LOGSYS_LEVEL_DEBUG, "got qdevice_getinfo state %d", quorum_device->state);
> +		res_lib_votequorum_qdevice_getinfo.votes = quorum_device->votes;
>  		if (quorum_device->state == NODESTATE_MEMBER) {
> -			res_lib_votequorum_qdisk_getinfo.state = 1;
> +			res_lib_votequorum_qdevice_getinfo.state = 1;
>  		} else {
> -			res_lib_votequorum_qdisk_getinfo.state = 0;
> +			res_lib_votequorum_qdevice_getinfo.state = 0;
>  		}
> -		strcpy(res_lib_votequorum_qdisk_getinfo.name, quorum_device_name);
> +		strcpy(res_lib_votequorum_qdevice_getinfo.name, quorum_device_name);
>  	} else {
>  		error = CS_ERR_NOT_EXIST;
>  	}
>  
> -	res_lib_votequorum_qdisk_getinfo.header.size = sizeof(res_lib_votequorum_qdisk_getinfo);
> -	res_lib_votequorum_qdisk_getinfo.header.id = MESSAGE_RES_VOTEQUORUM_GETINFO;
> -	res_lib_votequorum_qdisk_getinfo.header.error = error;
> -	corosync_api->ipc_response_send(conn, &res_lib_votequorum_qdisk_getinfo, sizeof(res_lib_votequorum_qdisk_getinfo));
> +	res_lib_votequorum_qdevice_getinfo.header.size = sizeof(res_lib_votequorum_qdevice_getinfo);
> +	res_lib_votequorum_qdevice_getinfo.header.id = MESSAGE_RES_VOTEQUORUM_GETINFO;
> +	res_lib_votequorum_qdevice_getinfo.header.error = error;
> +	corosync_api->ipc_response_send(conn, &res_lib_votequorum_qdevice_getinfo, sizeof(res_lib_votequorum_qdevice_getinfo));
>  
>  	LEAVE();
>  }
> diff --git a/include/corosync/ipc_votequorum.h b/include/corosync/ipc_votequorum.h
> index d083946..ce0edcb 100644
> --- a/include/corosync/ipc_votequorum.h
> +++ b/include/corosync/ipc_votequorum.h
> @@ -36,7 +36,7 @@
>  #define IPC_VOTEQUORUM_H_DEFINED
>  
>  #include <corosync/mar_gen.h>
> -#define VOTEQUORUM_MAX_QDISK_NAME_LEN 255
> +#define VOTEQUORUM_MAX_QDEVICE_NAME_LEN 255
>  
>  enum req_votequorum_types {
>  	MESSAGE_REQ_VOTEQUORUM_GETINFO = 0,
> @@ -46,17 +46,17 @@ enum req_votequorum_types {
>  	MESSAGE_REQ_VOTEQUORUM_TRACKSTOP
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
>  	,
> -	MESSAGE_REQ_VOTEQUORUM_QDISK_REGISTER,
> -	MESSAGE_REQ_VOTEQUORUM_QDISK_UNREGISTER,
> -	MESSAGE_REQ_VOTEQUORUM_QDISK_POLL,
> -	MESSAGE_REQ_VOTEQUORUM_QDISK_GETINFO
> +	MESSAGE_REQ_VOTEQUORUM_QDEVICE_REGISTER,
> +	MESSAGE_REQ_VOTEQUORUM_QDEVICE_UNREGISTER,
> +	MESSAGE_REQ_VOTEQUORUM_QDEVICE_POLL,
> +	MESSAGE_REQ_VOTEQUORUM_QDEVICE_GETINFO
>  #endif
>  };
>  
>  enum res_votequorum_types {
>  	MESSAGE_RES_VOTEQUORUM_STATUS = 0,
>  	MESSAGE_RES_VOTEQUORUM_GETINFO,
> -	MESSAGE_RES_VOTEQUORUM_QDISK_GETINFO,
> +	MESSAGE_RES_VOTEQUORUM_QDEVICE_GETINFO,
>  	MESSAGE_RES_VOTEQUORUM_TRACKSTART,
>  	MESSAGE_RES_VOTEQUORUM_NOTIFICATION,
>  	MESSAGE_RES_VOTEQUORUM_EXPECTEDVOTES_NOTIFICATION
> @@ -68,13 +68,13 @@ struct req_lib_votequorum_setvotes {
>  	int nodeid;
>  };
>  
> -struct req_lib_votequorum_qdisk_register {
> +struct req_lib_votequorum_qdevice_register {
>  	struct qb_ipc_request_header header __attribute__((aligned(8)));
>  	unsigned int votes;
> -	char name[VOTEQUORUM_MAX_QDISK_NAME_LEN];
> +	char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
>  };
>  
> -struct req_lib_votequorum_qdisk_poll {
> +struct req_lib_votequorum_qdevice_poll {
>  	struct qb_ipc_request_header header __attribute__((aligned(8)));
>  	int state;
>  };
> @@ -120,11 +120,11 @@ struct res_lib_votequorum_getinfo {
>  	unsigned int flags;
>  };
>  
> -struct res_lib_votequorum_qdisk_getinfo {
> +struct res_lib_votequorum_qdevice_getinfo {
>  	struct qb_ipc_response_header header __attribute__((aligned(8)));
>  	unsigned int votes;
>  	unsigned int state;
> -	char name[VOTEQUORUM_MAX_QDISK_NAME_LEN];
> +	char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
>  };
>  
>  struct votequorum_node {
> diff --git a/include/corosync/votequorum.h b/include/corosync/votequorum.h
> index db227ae..2293c35 100644
> --- a/include/corosync/votequorum.h
> +++ b/include/corosync/votequorum.h
> @@ -43,7 +43,7 @@ extern "C" {
>  typedef uint64_t votequorum_handle_t;
>  
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
> -#define VOTEQUORUM_MAX_QDISK_NAME_LEN 255
> +#define VOTEQUORUM_MAX_QDEVICE_NAME_LEN 255
>  #endif
>  
>  #define VOTEQUORUM_INFO_FLAG_TWONODE            1
> @@ -72,10 +72,10 @@ struct votequorum_info {
>  };
>  
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
> -struct votequorum_qdisk_info {
> +struct votequorum_qdevice_info {
>  	unsigned int votes;
>  	unsigned int state;
> -	char name[VOTEQUORUM_MAX_QDISK_NAME_LEN];
> +	char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
>  };
>  #endif
>  
> @@ -184,7 +184,7 @@ cs_error_t votequorum_context_set (
>   *
>   * it will be DEAD until polled
>   */
> -cs_error_t votequorum_qdisk_register (
> +cs_error_t votequorum_qdevice_register (
>  	votequorum_handle_t handle,
>  	const char *name,
>  	unsigned int votes);
> @@ -192,22 +192,22 @@ cs_error_t votequorum_qdisk_register (
>  /**
>   * Unregister a quorum device
>   */
> -cs_error_t votequorum_qdisk_unregister (
> +cs_error_t votequorum_qdevice_unregister (
>  	votequorum_handle_t handle);
>  
>  /**
>   * Poll a quorum device
>   */
> -cs_error_t votequorum_qdisk_poll (
> +cs_error_t votequorum_qdevice_poll (
>  	votequorum_handle_t handle,
>  	unsigned int state);
>  
>  /**
>   * Get quorum device information
>   */
> -cs_error_t votequorum_qdisk_getinfo (
> +cs_error_t votequorum_qdevice_getinfo (
>  	votequorum_handle_t handle,
> -	struct votequorum_qdisk_info *info);
> +	struct votequorum_qdevice_info *info);
>  
>  #endif
>  
> diff --git a/lib/libvotequorum.versions b/lib/libvotequorum.versions
> index c18a64a..2af705a 100644
> --- a/lib/libvotequorum.versions
> +++ b/lib/libvotequorum.versions
> @@ -7,10 +7,10 @@ COROSYNC_VOTEQUORUM_1.0 {
>  		votequorum_getinfo;
>  		votequorum_setexpected;
>  		votequorum_setvotes;
> -		votequorum_qdisk_register;
> -		votequorum_qdisk_unregister;
> -		votequorum_qdisk_poll;
> -		votequorum_qdisk_getinfo;
> +		votequorum_qdevice_register;
> +		votequorum_qdevice_unregister;
> +		votequorum_qdevice_poll;
> +		votequorum_qdevice_getinfo;
>  		votequorum_trackstart;
>  		votequorum_trackstop;
>  		votequorum_context_get;
> diff --git a/lib/votequorum.c b/lib/votequorum.c
> index e3ad3f9..1b7edf4 100644
> --- a/lib/votequorum.c
> +++ b/lib/votequorum.c
> @@ -530,7 +530,7 @@ error_put:
>  }
>  
>  #ifdef EXPERIMENTAL_QUORUM_DEVICE_API
> -cs_error_t votequorum_qdisk_register (
> +cs_error_t votequorum_qdevice_register (
>  	votequorum_handle_t handle,
>  	const char *name,
>  	unsigned int votes)
> @@ -538,10 +538,10 @@ cs_error_t votequorum_qdisk_register (
>  	cs_error_t error;
>  	struct votequorum_inst *votequorum_inst;
>  	struct iovec iov;
> -	struct req_lib_votequorum_qdisk_register req_lib_votequorum_qdisk_register;
> +	struct req_lib_votequorum_qdevice_register req_lib_votequorum_qdevice_register;
>  	struct res_lib_votequorum_status res_lib_votequorum_status;
>  
> -	if (strlen(name) > VOTEQUORUM_MAX_QDISK_NAME_LEN)
> +	if (strlen(name) > VOTEQUORUM_MAX_QDEVICE_NAME_LEN)
>  		return CS_ERR_INVALID_PARAM;
>  
>  	error = hdb_error_to_cs(hdb_handle_get (&votequorum_handle_t_db, handle, (void *)&votequorum_inst));
> @@ -550,13 +550,13 @@ cs_error_t votequorum_qdisk_register (
>  	}
>  
>  
> -	req_lib_votequorum_qdisk_register.header.size = sizeof (struct req_lib_votequorum_qdisk_register);
> -	req_lib_votequorum_qdisk_register.header.id = MESSAGE_REQ_VOTEQUORUM_QDISK_REGISTER;
> -	strcpy(req_lib_votequorum_qdisk_register.name, name);
> -	req_lib_votequorum_qdisk_register.votes = votes;
> +	req_lib_votequorum_qdevice_register.header.size = sizeof (struct req_lib_votequorum_qdevice_register);
> +	req_lib_votequorum_qdevice_register.header.id = MESSAGE_REQ_VOTEQUORUM_QDEVICE_REGISTER;
> +	strcpy(req_lib_votequorum_qdevice_register.name, name);
> +	req_lib_votequorum_qdevice_register.votes = votes;
>  
> -	iov.iov_base = (char *)&req_lib_votequorum_qdisk_register;
> -	iov.iov_len = sizeof (struct req_lib_votequorum_qdisk_register);
> +	iov.iov_base = (char *)&req_lib_votequorum_qdevice_register;
> +	iov.iov_len = sizeof (struct req_lib_votequorum_qdevice_register);
>  
>          error = qb_to_cs_error(qb_ipcc_sendv_recv (
>  		votequorum_inst->c,
> @@ -577,14 +577,14 @@ error_exit:
>  	return (error);
>  }
>  
> -cs_error_t votequorum_qdisk_poll (
> +cs_error_t votequorum_qdevice_poll (
>  	votequorum_handle_t handle,
>  	unsigned int state)
>  {
>  	cs_error_t error;
>  	struct votequorum_inst *votequorum_inst;
>  	struct iovec iov;
> -	struct req_lib_votequorum_qdisk_poll req_lib_votequorum_qdisk_poll;
> +	struct req_lib_votequorum_qdevice_poll req_lib_votequorum_qdevice_poll;
>  	struct res_lib_votequorum_status res_lib_votequorum_status;
>  
>  	error = hdb_error_to_cs(hdb_handle_get (&votequorum_handle_t_db, handle, (void *)&votequorum_inst));
> @@ -593,12 +593,12 @@ cs_error_t votequorum_qdisk_poll (
>  	}
>  
>  
> -	req_lib_votequorum_qdisk_poll.header.size = sizeof (struct req_lib_votequorum_qdisk_poll);
> -	req_lib_votequorum_qdisk_poll.header.id = MESSAGE_REQ_VOTEQUORUM_QDISK_POLL;
> -	req_lib_votequorum_qdisk_poll.state = state;
> +	req_lib_votequorum_qdevice_poll.header.size = sizeof (struct req_lib_votequorum_qdevice_poll);
> +	req_lib_votequorum_qdevice_poll.header.id = MESSAGE_REQ_VOTEQUORUM_QDEVICE_POLL;
> +	req_lib_votequorum_qdevice_poll.state = state;
>  
> -	iov.iov_base = (char *)&req_lib_votequorum_qdisk_poll;
> -	iov.iov_len = sizeof (struct req_lib_votequorum_qdisk_poll);
> +	iov.iov_base = (char *)&req_lib_votequorum_qdevice_poll;
> +	iov.iov_len = sizeof (struct req_lib_votequorum_qdevice_poll);
>  
>          error = qb_to_cs_error(qb_ipcc_sendv_recv (
>  		votequorum_inst->c,
> @@ -619,7 +619,7 @@ error_exit:
>  	return (error);
>  }
>  
> -cs_error_t votequorum_qdisk_unregister (
> +cs_error_t votequorum_qdevice_unregister (
>  	votequorum_handle_t handle)
>  {
>  	cs_error_t error;
> @@ -634,7 +634,7 @@ cs_error_t votequorum_qdisk_unregister (
>  	}
>  
>  	req_lib_votequorum_general.header.size = sizeof (struct req_lib_votequorum_general);
> -	req_lib_votequorum_general.header.id = MESSAGE_REQ_VOTEQUORUM_QDISK_UNREGISTER;
> +	req_lib_votequorum_general.header.id = MESSAGE_REQ_VOTEQUORUM_QDEVICE_UNREGISTER;
>  
>  	iov.iov_base = (char *)&req_lib_votequorum_general;
>  	iov.iov_len = sizeof (struct req_lib_votequorum_general);
> @@ -658,15 +658,15 @@ error_exit:
>  	return (error);
>  }
>  
> -cs_error_t votequorum_qdisk_getinfo (
> +cs_error_t votequorum_qdevice_getinfo (
>  	votequorum_handle_t handle,
> -	struct votequorum_qdisk_info *qinfo)
> +	struct votequorum_qdevice_info *qinfo)
>  {
>  	cs_error_t error;
>  	struct votequorum_inst *votequorum_inst;
>  	struct iovec iov;
>  	struct req_lib_votequorum_general req_lib_votequorum_general;
> -	struct res_lib_votequorum_qdisk_getinfo res_lib_votequorum_qdisk_getinfo;
> +	struct res_lib_votequorum_qdevice_getinfo res_lib_votequorum_qdevice_getinfo;
>  
>  	error = hdb_error_to_cs(hdb_handle_get (&votequorum_handle_t_db, handle, (void *)&votequorum_inst));
>  	if (error != CS_OK) {
> @@ -675,7 +675,7 @@ cs_error_t votequorum_qdisk_getinfo (
>  
>  
>  	req_lib_votequorum_general.header.size = sizeof (struct req_lib_votequorum_general);
> -	req_lib_votequorum_general.header.id = MESSAGE_REQ_VOTEQUORUM_QDISK_GETINFO;
> +	req_lib_votequorum_general.header.id = MESSAGE_REQ_VOTEQUORUM_QDEVICE_GETINFO;
>  
>  	iov.iov_base = (char *)&req_lib_votequorum_general;
>  	iov.iov_len = sizeof (struct req_lib_votequorum_general);
> @@ -684,18 +684,18 @@ cs_error_t votequorum_qdisk_getinfo (
>  		votequorum_inst->c,
>  		&iov,
>  		1,
> -                &res_lib_votequorum_qdisk_getinfo,
> -		sizeof (struct res_lib_votequorum_qdisk_getinfo), CS_IPC_TIMEOUT_MS));
> +                &res_lib_votequorum_qdevice_getinfo,
> +		sizeof (struct res_lib_votequorum_qdevice_getinfo), CS_IPC_TIMEOUT_MS));
>  
>  	if (error != CS_OK) {
>  		goto error_exit;
>  	}
>  
> -	error = res_lib_votequorum_qdisk_getinfo.header.error;
> +	error = res_lib_votequorum_qdevice_getinfo.header.error;
>  
> -	qinfo->votes = res_lib_votequorum_qdisk_getinfo.votes;
> -	qinfo->state = res_lib_votequorum_qdisk_getinfo.state;
> -	strcpy(qinfo->name, res_lib_votequorum_qdisk_getinfo.name);
> +	qinfo->votes = res_lib_votequorum_qdevice_getinfo.votes;
> +	qinfo->state = res_lib_votequorum_qdevice_getinfo.state;
> +	strcpy(qinfo->name, res_lib_votequorum_qdevice_getinfo.name);
>  
>  
>  error_exit:
> diff --git a/man/Makefile.am b/man/Makefile.am
> index 865a9a6..3ce859e 100644
> --- a/man/Makefile.am
> +++ b/man/Makefile.am
> @@ -1,5 +1,5 @@
>  # Copyright (c) 2004 MontaVista Software, Inc.
> -# Copyright (c) 2009 Red Hat, Inc.
> +# Copyright (c) 2009, 2012 Red Hat, Inc.
>  #
>  # Authors: Steven Dake (sdake@xxxxxxxxxx)
>  #          Fabio M. Di Nitto (fdinitto@xxxxxxxxxx)
> @@ -93,10 +93,10 @@ dist_man_MANS = \
>  	votequorum_finalize.3 \
>  	votequorum_getinfo.3 \
>  	votequorum_initialize.3 \
> -	votequorum_qdisk_getinfo.3 \
> -	votequorum_qdisk_poll.3 \
> -	votequorum_qdisk_register.3 \
> -	votequorum_qdisk_unregister.3 \
> +	votequorum_qdevice_getinfo.3 \
> +	votequorum_qdevice_poll.3 \
> +	votequorum_qdevice_register.3 \
> +	votequorum_qdevice_unregister.3 \
>  	votequorum_setexpected.3 \
>  	votequorum_setvotes.3 \
>  	sam_data_getsize.3 \
> diff --git a/man/index.html b/man/index.html
> index 1133f33..0fd164a 100644
> --- a/man/index.html
> +++ b/man/index.html
> @@ -287,21 +287,23 @@
>        Description of the votequorum interface.
>        <br>
>  
> -      <a href="votequorum_qdisk_register.3.html">
> -	votequorum_qdisk_register(3)</a>:
> +      <a href="votequorum_qdevice_register.3.html">
> +	votequorum_qdevice_register(3)</a>:
>        Description of the votequorum interface.
>        <br>
>  
> -      <a href="votequorum_qdisk_unregister.3.html">
> -	votequorum_qdisk_unregister(3)</a>:
> +      <a href="votequorum_qdevice_unregister.3.html">
> +	votequorum_qdevice_unregister(3)</a>:
>        Description of the votequorum interface.
>        <br>
>  
> -      <a href="votequorum_qdisk_poll.3.html">votequorum_qdisk_poll(3)</a>:
> +      <a href="votequorum_qdevice_poll.3.html">
> +	votequorum_qdevice_poll(3)</a>:
>        Description of the votequorum interface.
>        <br>
>  
> -      <a href="votequorum_qdisk_getinfo.3.html">votequorum_qdisk_getinfo(3)</a>:
> +      <a href="votequorum_qdevice_getinfo.3.html">
> +	votequorum_qdevice_getinfo(3)</a>:
>        Description of the votequorum interface.
>        <br>
>  
> diff --git a/man/votequorum_overview.8 b/man/votequorum_overview.8
> index ce9553a..0149ffb 100644
> --- a/man/votequorum_overview.8
> +++ b/man/votequorum_overview.8
> @@ -68,10 +68,10 @@ No known bugs at the time of writing. The authors are from outerspace. Deal with
>  .BR votequorum_finalize (3),
>  .BR votequorum_getinfo (3),
>  .BR votequorum_initialize (3),
> -.BR votequorum_qdisk_getinfo (3),
> -.BR votequorum_qdisk_poll (3),
> -.BR votequorum_qdisk_register (3),
> -.BR votequorum_qdisk_unregister (3),
> +.BR votequorum_qdevice_getinfo (3),
> +.BR votequorum_qdevice_poll (3),
> +.BR votequorum_qdevice_register (3),
> +.BR votequorum_qdevice_unregister (3),
>  .BR votequorum_setexpected (3),
>  .BR votequorum_setvotes (3)
>  .PP
> diff --git a/man/votequorum_qdevice_getinfo.3 b/man/votequorum_qdevice_getinfo.3
> new file mode 100644
> index 0000000..90b5b51
> --- /dev/null
> +++ b/man/votequorum_qdevice_getinfo.3
> @@ -0,0 +1,80 @@
> +.\"/*
> +.\" * Copyright (c) 2009,2012 Red Hat, Inc.
> +.\" *
> +.\" * All rights reserved.
> +.\" *
> +.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> +.\" *
> +.\" * This software licensed under BSD license, the text of which follows:
> +.\" *
> +.\" * Redistribution and use in source and binary forms, with or without
> +.\" * modification, are permitted provided that the following conditions are met:
> +.\" *
> +.\" * - Redistributions of source code must retain the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer.
> +.\" * - Redistributions in binary form must reproduce the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer in the documentation
> +.\" *   and/or other materials provided with the distribution.
> +.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> +.\" *   contributors may be used to endorse or promote products derived from this
> +.\" *   software without specific prior written permission.
> +.\" *
> +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> +.\" * THE POSSIBILITY OF SUCH DAMAGE.
> +.\" */
> +.TH VOTEQUORUM_QDEVICE_GETINFO 3 2012-01-27 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> +.SH NAME
> +votequorum_qdevice_getinfo \- Get details of the quorum device
> +.SH SYNOPSIS
> +.B #include <corosync/votequorum.h>
> +.sp
> +.BI "int votequorum_qdevice_getinfo(votequorum_handle_t " handle ", struct votequorum_qdevice_info " *info ");"
> +.SH DESCRIPTION
> +The
> +.B votequorum_qdevice_getinfo
> +Returns information about the quorum device in the following structure:
> +.PP
> +.PP
> +.IP
> +.RS
> +.ne 18
> +.nf
> +.ta 4n 20n 32n
> +
> +struct votequorum_qdevice_info {
> +	unsigned int votes;
> +	unsigned int state;
> +	char name[VOTEQUORUM_MAX_QDEVICE_NAME_LEN];
> +};
> +
> +.ta
> +.fi
> +.RE
> +.IP
> +.PP
> +.PP
> +
> +.SH RETURN VALUE
> +This call returns the CS_OK value if successful, otherwise an error is returned.
> +.PP
> +.SH ERRORS
> +The errors are undocumented.
> +.SH "SEE ALSO"
> +.BR votequorum_overview (8),
> +.BR votequorum_initialize (3),
> +.BR votequorum_finalize (3),
> +.BR votequorum_dispatch (3),
> +.BR votequorum_fd_get (3),
> +.BR votequorum_qdevice_poll (3),
> +.BR votequorum_qdevice_unregister (3),
> +.BR votequorum_qdevice_getinfo (3),
> +.PP
> diff --git a/man/votequorum_qdevice_poll.3 b/man/votequorum_qdevice_poll.3
> new file mode 100644
> index 0000000..12030a6
> --- /dev/null
> +++ b/man/votequorum_qdevice_poll.3
> @@ -0,0 +1,69 @@
> +.\"/*
> +.\" * Copyright (c) 2009,2012 Red Hat, Inc.
> +.\" *
> +.\" * All rights reserved.
> +.\" *
> +.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> +.\" *
> +.\" * This software licensed under BSD license, the text of which follows:
> +.\" *
> +.\" * Redistribution and use in source and binary forms, with or without
> +.\" * modification, are permitted provided that the following conditions are met:
> +.\" *
> +.\" * - Redistributions of source code must retain the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer.
> +.\" * - Redistributions in binary form must reproduce the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer in the documentation
> +.\" *   and/or other materials provided with the distribution.
> +.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> +.\" *   contributors may be used to endorse or promote products derived from this
> +.\" *   software without specific prior written permission.
> +.\" *
> +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> +.\" * THE POSSIBILITY OF SUCH DAMAGE.
> +.\" */
> +.TH VOTEQUORUM_QDEVICE_POLL 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> +.SH NAME
> +votequorum_qdevice_poll \- Tells votequorum the result of the quorum device poll
> +.SH SYNOPSIS
> +.B #include <corosync/votequorum.h>
> +.sp
> +.BI "int votequorum_qdevice_poll(votequorum_handle_t " handle ", unsigned int " state ");"
> +.SH DESCRIPTION
> +The
> +.B votequorum_qdevice_poll
> +is called by the quorum device subsystem (not provided as part of votequorum) to tell
> +the voting system if the qurum device is present/active or not. If
> +.B state
> +is 1 then the votes for the device are included in the quorum calculation, otherwise not.
> +This routine should be called at regular intervals to ensure that the device status
> +is always known to votequorum. If
> +.B votequorum_qdevice_poll
> +is not called after (default) 10 seconds then the device will be deeded to be dead and
> +its votes removed from the cluster. This does not unregister the device.
> +The default poll time can be changed by setting the object database variable
> +quorum.quorumdev_poll.
> +.SH RETURN VALUE
> +This call returns the CS_OK value if successful, otherwise an error is returned.
> +.PP
> +.SH ERRORS
> +The errors are undocumented.
> +.SH "SEE ALSO"
> +.BR votequorum_overview (8),
> +.BR votequorum_initialize (3),
> +.BR votequorum_finalize (3),
> +.BR votequorum_dispatch (3),
> +.BR votequorum_fd_get (3),
> +.BR votequorum_qdevice_register (3),
> +.BR votequorum_qdevice_unregister (3),
> +.BR votequorum_qdevice_getinfo (3),
> +.PP
> diff --git a/man/votequorum_qdevice_register.3 b/man/votequorum_qdevice_register.3
> new file mode 100644
> index 0000000..a8704fd
> --- /dev/null
> +++ b/man/votequorum_qdevice_register.3
> @@ -0,0 +1,68 @@
> +.\"/*
> +.\" * Copyright (c) 2009,2012 Red Hat, Inc.
> +.\" *
> +.\" * All rights reserved.
> +.\" *
> +.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> +.\" *
> +.\" * This software licensed under BSD license, the text of which follows:
> +.\" *
> +.\" * Redistribution and use in source and binary forms, with or without
> +.\" * modification, are permitted provided that the following conditions are met:
> +.\" *
> +.\" * - Redistributions of source code must retain the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer.
> +.\" * - Redistributions in binary form must reproduce the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer in the documentation
> +.\" *   and/or other materials provided with the distribution.
> +.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> +.\" *   contributors may be used to endorse or promote products derived from this
> +.\" *   software without specific prior written permission.
> +.\" *
> +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> +.\" * THE POSSIBILITY OF SUCH DAMAGE.
> +.\" */
> +.TH VOTEQUORUM_QDEVICE_REGISTER 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> +.SH NAME
> +votequorum_qdevice_register \- Registers a new quorum device
> +.SH SYNOPSIS
> +.B #include <corosync/votequorum.h>
> +.sp
> +.BI "int votequorum_qdevice_register(votequorum_handle_t " handle ", char * " name ", unsigned int " votes ");"
> +.SH DESCRIPTION
> +The
> +.B votequorum_qdevice_register
> +is used to register a new quorum device. A quorum device is an external way of adding votes to a small
> +cluster. The quorum device is, in effect, a pseudo node in the cluster that provide votes based on some
> +external device, usually a shared disk partition or perhaps a network router.
> +.br
> +This call creates the device but does not mark it active.
> +.B votequorum_qdevice_poll
> +must be called for the votes to be included in the quorum calculation.
> +.br
> +Note that it is the responsibility of the quorum device subsystem (not provided as part of votequorum)
> +to keep all nodes informed of the quorum device status.
> +.SH RETURN VALUE
> +This call returns the CS_OK value if successful, otherwise an error is returned.
> +.PP
> +.SH ERRORS
> +The errors are undocumented.
> +.SH "SEE ALSO"
> +.BR votequorum_overview (8),
> +.BR votequorum_initialize (3),
> +.BR votequorum_finalize (3),
> +.BR votequorum_dispatch (3),
> +.BR votequorum_fd_get (3),
> +.BR votequorum_qdevice_poll (3),
> +.BR votequorum_qdevice_unregister (3),
> +.BR votequorum_qdevice_getinfo (3),
> +.PP
> diff --git a/man/votequorum_qdevice_unregister.3 b/man/votequorum_qdevice_unregister.3
> new file mode 100644
> index 0000000..4c72192
> --- /dev/null
> +++ b/man/votequorum_qdevice_unregister.3
> @@ -0,0 +1,60 @@
> +.\"/*
> +.\" * Copyright (c) 2009,2012 Red Hat, Inc.
> +.\" *
> +.\" * All rights reserved.
> +.\" *
> +.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> +.\" *
> +.\" * This software licensed under BSD license, the text of which follows:
> +.\" *
> +.\" * Redistribution and use in source and binary forms, with or without
> +.\" * modification, are permitted provided that the following conditions are met:
> +.\" *
> +.\" * - Redistributions of source code must retain the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer.
> +.\" * - Redistributions in binary form must reproduce the above copyright notice,
> +.\" *   this list of conditions and the following disclaimer in the documentation
> +.\" *   and/or other materials provided with the distribution.
> +.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> +.\" *   contributors may be used to endorse or promote products derived from this
> +.\" *   software without specific prior written permission.
> +.\" *
> +.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> +.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> +.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> +.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> +.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> +.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> +.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> +.\" * THE POSSIBILITY OF SUCH DAMAGE.
> +.\" */
> +.TH VOTEQUORUM_QDEVICE_UNREGISTER 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> +.SH NAME
> +votequorum_qdevice_unregister \- Unregisters a new quorum device
> +.SH SYNOPSIS
> +.B #include <corosync/votequorum.h>
> +.sp
> +.BI "int votequorum_qdevice_unregister(votequorum_handle_t " handle ");"
> +.SH DESCRIPTION
> +The
> +.B votequorum_qdevice_unregister
> +unregisters a quorum device. Any votes it had will be removed from the cluster. Not that this could
> +make the cluster inquorate.
> +.SH RETURN VALUE
> +This call returns the CS_OK value if successful, otherwise an error is returned.
> +.PP
> +.SH ERRORS
> +The errors are undocumented.
> +.SH "SEE ALSO"
> +.BR votequorum_overview (8),
> +.BR votequorum_initialize (3),
> +.BR votequorum_finalize (3),
> +.BR votequorum_dispatch (3),
> +.BR votequorum_fd_get (3),
> +.BR votequorum_qdevice_poll (3),
> +.BR votequorum_qdevice_register (3),
> +.BR votequorum_qdevice_getinfo (3),
> +.PP
> diff --git a/man/votequorum_qdisk_getinfo.3 b/man/votequorum_qdisk_getinfo.3
> deleted file mode 100644
> index c3f1c53..0000000
> --- a/man/votequorum_qdisk_getinfo.3
> +++ /dev/null
> @@ -1,80 +0,0 @@
> -.\"/*
> -.\" * Copyright (c) 2009 Red Hat, Inc.
> -.\" *
> -.\" * All rights reserved.
> -.\" *
> -.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> -.\" *
> -.\" * This software licensed under BSD license, the text of which follows:
> -.\" *
> -.\" * Redistribution and use in source and binary forms, with or without
> -.\" * modification, are permitted provided that the following conditions are met:
> -.\" *
> -.\" * - Redistributions of source code must retain the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer.
> -.\" * - Redistributions in binary form must reproduce the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer in the documentation
> -.\" *   and/or other materials provided with the distribution.
> -.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> -.\" *   contributors may be used to endorse or promote products derived from this
> -.\" *   software without specific prior written permission.
> -.\" *
> -.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> -.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> -.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> -.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> -.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> -.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> -.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> -.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> -.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> -.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> -.\" * THE POSSIBILITY OF SUCH DAMAGE.
> -.\" */
> -.TH VOTEQUORUM_QDISK_GETINFO 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> -.SH NAME
> -votequorum_qdisk_getinfo \- Get details of the quorum device
> -.SH SYNOPSIS
> -.B #include <corosync/votequorum.h>
> -.sp
> -.BI "int votequorum_qdisk_getinfo(votequorum_handle_t " handle ", struct votequorum_qdisk_info " *info ");"
> -.SH DESCRIPTION
> -The
> -.B votequorum_qdisk_getinfo
> -Returns information about the quorum device in the following structure:
> -.PP
> -.PP
> -.IP
> -.RS
> -.ne 18
> -.nf
> -.ta 4n 20n 32n
> -
> -struct votequorum_qdisk_info {
> -	unsigned int votes;
> -	unsigned int state;
> -	char name[VOTEQUORUM_MAX_QDISK_NAME_LEN];
> -};
> -
> -.ta
> -.fi
> -.RE
> -.IP
> -.PP
> -.PP
> -
> -.SH RETURN VALUE
> -This call returns the CS_OK value if successful, otherwise an error is returned.
> -.PP
> -.SH ERRORS
> -The errors are undocumented.
> -.SH "SEE ALSO"
> -.BR votequorum_overview (8),
> -.BR votequorum_initialize (3),
> -.BR votequorum_finalize (3),
> -.BR votequorum_dispatch (3),
> -.BR votequorum_fd_get (3),
> -.BR votequorum_qdisk_poll (3),
> -.BR votequorum_qdisk_unregister (3),
> -.BR votequorum_qdisk_getinfo (3),
> -.PP
> diff --git a/man/votequorum_qdisk_poll.3 b/man/votequorum_qdisk_poll.3
> deleted file mode 100644
> index 54780db..0000000
> --- a/man/votequorum_qdisk_poll.3
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -.\"/*
> -.\" * Copyright (c) 2009 Red Hat, Inc.
> -.\" *
> -.\" * All rights reserved.
> -.\" *
> -.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> -.\" *
> -.\" * This software licensed under BSD license, the text of which follows:
> -.\" *
> -.\" * Redistribution and use in source and binary forms, with or without
> -.\" * modification, are permitted provided that the following conditions are met:
> -.\" *
> -.\" * - Redistributions of source code must retain the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer.
> -.\" * - Redistributions in binary form must reproduce the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer in the documentation
> -.\" *   and/or other materials provided with the distribution.
> -.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> -.\" *   contributors may be used to endorse or promote products derived from this
> -.\" *   software without specific prior written permission.
> -.\" *
> -.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> -.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> -.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> -.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> -.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> -.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> -.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> -.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> -.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> -.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> -.\" * THE POSSIBILITY OF SUCH DAMAGE.
> -.\" */
> -.TH VOTEQUORUM_QDISK_POLL 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> -.SH NAME
> -votequorum_qdisk_poll \- Tells votequorum the result of the quorum device poll
> -.SH SYNOPSIS
> -.B #include <corosync/votequorum.h>
> -.sp
> -.BI "int votequorum_qdisk_poll(votequorum_handle_t " handle ", unsigned int " state ");"
> -.SH DESCRIPTION
> -The
> -.B votequorum_qdisk_poll
> -is called by the quorum device subsyetem (not provided as part of votequorum) to tell
> -the voting system if the qurum device is present/active or not. If
> -.B state
> -is 1 then the votes for the device are included in the quorum calculation, otherwise not.
> -This routine should be called at regular intervals to ensure that the device status
> -is always known to votequorum. If
> -.B votequorum_qdisk_poll
> -is not called after (default) 10 seconds then the device will be deeded to be dead and
> -its votes removed from the cluster. This does not unregister the device.
> -The default poll time can be changed by setting the object database variable
> -quorum.quorumdev_poll.
> -.SH RETURN VALUE
> -This call returns the CS_OK value if successful, otherwise an error is returned.
> -.PP
> -.SH ERRORS
> -The errors are undocumented.
> -.SH "SEE ALSO"
> -.BR votequorum_overview (8),
> -.BR votequorum_initialize (3),
> -.BR votequorum_finalize (3),
> -.BR votequorum_dispatch (3),
> -.BR votequorum_fd_get (3),
> -.BR votequorum_qdisk_poll (3),
> -.BR votequorum_qdisk_unregister (3),
> -.BR votequorum_qdisk_getinfo (3),
> -.PP
> diff --git a/man/votequorum_qdisk_register.3 b/man/votequorum_qdisk_register.3
> deleted file mode 100644
> index a19c2f6..0000000
> --- a/man/votequorum_qdisk_register.3
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -.\"/*
> -.\" * Copyright (c) 2009 Red Hat, Inc.
> -.\" *
> -.\" * All rights reserved.
> -.\" *
> -.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> -.\" *
> -.\" * This software licensed under BSD license, the text of which follows:
> -.\" *
> -.\" * Redistribution and use in source and binary forms, with or without
> -.\" * modification, are permitted provided that the following conditions are met:
> -.\" *
> -.\" * - Redistributions of source code must retain the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer.
> -.\" * - Redistributions in binary form must reproduce the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer in the documentation
> -.\" *   and/or other materials provided with the distribution.
> -.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> -.\" *   contributors may be used to endorse or promote products derived from this
> -.\" *   software without specific prior written permission.
> -.\" *
> -.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> -.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> -.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> -.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> -.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> -.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> -.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> -.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> -.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> -.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> -.\" * THE POSSIBILITY OF SUCH DAMAGE.
> -.\" */
> -.TH VOTEQUORUM_QDISK_REGISTER 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> -.SH NAME
> -votequorum_qdisk_register \- Registers a new quorum device
> -.SH SYNOPSIS
> -.B #include <corosync/votequorum.h>
> -.sp
> -.BI "int votequorum_qdisk_register(votequorum_handle_t " handle ", char * " name ", unsigned int " votes ");"
> -.SH DESCRIPTION
> -The
> -.B votequorum_qdisk_register
> -is used to register a new quorum device. A quorum device is an external way of adding votes to a small
> -cluster. The quorum device is, in effect, a pseudo node in the cluster that provide votes based on some
> -external device, usually a shared disk partition or perhaps a network router.
> -.br
> -This call creates the device but does not mark it active.
> -.B votequorum_qdisk_poll
> -must be called for the votes to be included in the quorum calculation.
> -.br
> -Note that it is the responsibility of the quorum device subsystem (not provided as part of votequorum)
> -to keep all nodes informed of the quorum device status.
> -.SH RETURN VALUE
> -This call returns the CS_OK value if successful, otherwise an error is returned.
> -.PP
> -.SH ERRORS
> -The errors are undocumented.
> -.SH "SEE ALSO"
> -.BR votequorum_overview (8),
> -.BR votequorum_initialize (3),
> -.BR votequorum_finalize (3),
> -.BR votequorum_dispatch (3),
> -.BR votequorum_fd_get (3),
> -.BR votequorum_qdisk_poll (3),
> -.BR votequorum_qdisk_unregister (3),
> -.BR votequorum_qdisk_getinfo (3),
> -.PP
> diff --git a/man/votequorum_qdisk_unregister.3 b/man/votequorum_qdisk_unregister.3
> deleted file mode 100644
> index 7d9dab0..0000000
> --- a/man/votequorum_qdisk_unregister.3
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -.\"/*
> -.\" * Copyright (c) 2009 Red Hat, Inc.
> -.\" *
> -.\" * All rights reserved.
> -.\" *
> -.\" * Author: Christine Caulfield <ccaulfie@xxxxxxxxxx>
> -.\" *
> -.\" * This software licensed under BSD license, the text of which follows:
> -.\" *
> -.\" * Redistribution and use in source and binary forms, with or without
> -.\" * modification, are permitted provided that the following conditions are met:
> -.\" *
> -.\" * - Redistributions of source code must retain the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer.
> -.\" * - Redistributions in binary form must reproduce the above copyright notice,
> -.\" *   this list of conditions and the following disclaimer in the documentation
> -.\" *   and/or other materials provided with the distribution.
> -.\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
> -.\" *   contributors may be used to endorse or promote products derived from this
> -.\" *   software without specific prior written permission.
> -.\" *
> -.\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> -.\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> -.\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> -.\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> -.\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> -.\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> -.\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> -.\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> -.\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> -.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> -.\" * THE POSSIBILITY OF SUCH DAMAGE.
> -.\" */
> -.TH VOTEQUORUM_QDISK_UNREGISTER 3 2009-01-26 "corosync Man Page" "Corosync Cluster Engine Programmer's Manual"
> -.SH NAME
> -votequorum_qdisk_unregister \- Unregisters a new quorum device
> -.SH SYNOPSIS
> -.B #include <corosync/votequorum.h>
> -.sp
> -.BI "int votequorum_qdisk_unregister(votequorum_handle_t " handle ");"
> -.SH DESCRIPTION
> -The
> -.B votequorum_qdisk_unregister
> -unregisters a quorum device. Any votes it had will be removed from the cluster. Not that this could
> -make the cluster inquorate.
> -.SH RETURN VALUE
> -This call returns the CS_OK value if successful, otherwise an error is returned.
> -.PP
> -.SH ERRORS
> -The errors are undocumented.
> -.SH "SEE ALSO"
> -.BR votequorum_overview (8),
> -.BR votequorum_initialize (3),
> -.BR votequorum_finalize (3),
> -.BR votequorum_dispatch (3),
> -.BR votequorum_fd_get (3),
> -.BR votequorum_qdisk_poll (3),
> -.BR votequorum_qdisk_unregister (3),
> -.BR votequorum_qdisk_getinfo (3),
> -.PP
> diff --git a/test/testvotequorum2.c b/test/testvotequorum2.c
> index e702131..39a7cbf 100644
> --- a/test/testvotequorum2.c
> +++ b/test/testvotequorum2.c
> @@ -47,13 +47,13 @@ static votequorum_handle_t handle;
>  
>  static void print_info(int ok_to_fail)
>  {
> -	struct votequorum_qdisk_info qinfo;
> +	struct votequorum_qdevice_info qinfo;
>  	int err;
>  
> -	if ( (err=votequorum_qdisk_getinfo(handle, &qinfo)) != CS_OK)
> -		fprintf(stderr, "votequorum_qdisk_getinfo error %d: %s\n", err, ok_to_fail?"OK":"FAILED");
> +	if ( (err=votequorum_qdevice_getinfo(handle, &qinfo)) != CS_OK)
> +		fprintf(stderr, "votequorum_qdevice_getinfo error %d: %s\n", err, ok_to_fail?"OK":"FAILED");
>  	else {
> -		printf("qdisk votes  %d\n", qinfo.votes);
> +		printf("qdevice votes  %d\n", qinfo.votes);
>  		printf("state        %d\n", qinfo.state);
>  		printf("name         %s\n", qinfo.name);
>  		printf("\n");
> @@ -82,24 +82,24 @@ int main(int argc, char *argv[])
>  	}
>  
>  	if (argc >= 2) {
> -		if ( (err=votequorum_qdisk_register(handle, "QDISK", 4)) != CS_OK)
> -			fprintf(stderr, "qdisk_register FAILED: %d\n", err);
> +		if ( (err=votequorum_qdevice_register(handle, "QDEVICE", 4)) != CS_OK)
> +			fprintf(stderr, "qdevice_register FAILED: %d\n", err);
>  
>  		while (pollcount--) {
>  			print_info(0);
> -			if ((err=votequorum_qdisk_poll(handle, 1)) != CS_OK)
> -				fprintf(stderr, "qdisk poll FAILED: %d\n", err);
> +			if ((err=votequorum_qdevice_poll(handle, 1)) != CS_OK)
> +				fprintf(stderr, "qdevice poll FAILED: %d\n", err);
>  			print_info(0);
>  			sleep(polltime);
>  		}
> -		if ((err= votequorum_qdisk_unregister(handle)) != CS_OK)
> -			fprintf(stderr, "qdisk unregister FAILED: %d\n", err);
> +		if ((err= votequorum_qdevice_unregister(handle)) != CS_OK)
> +			fprintf(stderr, "qdevice unregister FAILED: %d\n", err);
>  	}
>  	print_info(1);
>  
>  	votequorum_finalize(handle);
>  #else
> -	fprintf(stderr, "qdisk support is not built in corosync/votequorum\n");	
> +	fprintf(stderr, "qdevice support is not built in corosync/votequorum\n");	
>  #endif
>  	return 0;
>  }

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss


[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux