Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 36279bd1cbed1b4a3a9026df00326148b42e67f6
Parent: a02442e84d4cd139f609de65f7e2e4e6be712f59
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Wed Sep 16 12:13:16 2009 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Wed Sep 16 12:13:16 2009 -0500
fenced: rename things from cman to cluster
Use the name "cluster" instead of "cman" for things visible
outside member_cman.c to make the code closer to the fence.git
version and make porting patches easier.
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
fence/fenced/cpg.c | 33 +++++++++++----------
fence/fenced/fd.h | 18 ++++++------
fence/fenced/group.c | 2 +-
fence/fenced/main.c | 8 ++--
fence/fenced/member_cman.c | 67 ++++++++++++++++++++++---------------------
fence/fenced/recover.c | 12 ++++----
6 files changed, 71 insertions(+), 69 deletions(-)
diff --git a/fence/fenced/cpg.c b/fence/fenced/cpg.c
index be89fce..0bd2057 100644
--- a/fence/fenced/cpg.c
+++ b/fence/fenced/cpg.c
@@ -323,7 +323,7 @@ void node_history_init(struct fd *fd, int nodeid)
list_add_tail(&node->list, &fd->node_history);
}
-void node_history_cman_add(int nodeid)
+void node_history_cluster_add(int nodeid)
{
struct fd *fd;
struct node_history *node;
@@ -333,15 +333,16 @@ void node_history_cman_add(int nodeid)
node = get_node_history(fd, nodeid);
if (!node) {
- log_error("node_history_cman_add no nodeid %d", nodeid);
+ log_error("node_history_cluster_add no nodeid %d",
+ nodeid);
return;
}
- node->cman_add_time = time(NULL);
+ node->cluster_add_time = time(NULL);
}
}
-void node_history_cman_remove(int nodeid)
+void node_history_cluster_remove(int nodeid)
{
struct fd *fd;
struct node_history *node;
@@ -349,12 +350,12 @@ void node_history_cman_remove(int nodeid)
list_for_each_entry(fd, &domains, list) {
node = get_node_history(fd, nodeid);
if (!node) {
- log_error("node_history_cman_remove no nodeid %d",
+ log_error("node_history_cluster_remove no nodeid %d",
nodeid);
return;
}
- node->cman_remove_time = time(NULL);
+ node->cluster_remove_time = time(NULL);
}
}
@@ -642,10 +643,10 @@ static int check_quorum_done(struct fd *fd)
struct node_history *node;
int wait_count = 0;
- /* We don't want to trust the cman_quorate value until we know
+ /* We don't want to trust the cluster_quorate value until we know
that cman has seen the same nodes fail that we have. So, we
first make sure that all nodes we've seen fail are also
- failed in cman, then we can just check cman_quorate. This
+ failed in cman, then we can just check cluster_quorate. This
assumes that we'll get to this function to do all the checks
before any of the failed nodes can actually rejoin and become
cman members again (if that assumption doesn't hold, perhaps
@@ -655,10 +656,10 @@ static int check_quorum_done(struct fd *fd)
if (!node->check_quorum)
continue;
- if (!is_cman_member_reread(node->nodeid)) {
+ if (!is_cluster_member_reread(node->nodeid)) {
node->check_quorum = 0;
} else {
- log_debug("check_quorum %d is_cman_member",
+ log_debug("check_quorum %d is_cluster_member",
node->nodeid);
wait_count++;
}
@@ -667,7 +668,7 @@ static int check_quorum_done(struct fd *fd)
if (wait_count)
return 0;
- if (!cman_quorate) {
+ if (!cluster_quorate) {
log_debug("check_quorum not quorate");
return 0;
}
@@ -812,11 +813,11 @@ static int match_change(struct fd *fd, struct change *cg, struct
fd_header *hd,
return 0;
}
- if (node->cman_add_time > cg->create_time) {
+ if (node->cluster_add_time > cg->create_time) {
log_debug("match_change %d:%u skip cg %u created %llu "
- "cman add %llu", hd->nodeid, seq, cg->seq,
+ "cluster add %llu", hd->nodeid, seq, cg->seq,
(unsigned long long)cg->create_time,
- (unsigned long long)node->cman_add_time);
+ (unsigned long long)node->cluster_add_time);
return 0;
}
@@ -1367,7 +1368,7 @@ static void add_victims_init(struct fd *fd, struct change *cg)
list_for_each_entry_safe(node, safe, &fd->complete, list) {
list_del(&node->list);
- if (!is_cman_member_reread(node->nodeid) &&
+ if (!is_cluster_member_reread(node->nodeid) &&
!find_memb(cg, node->nodeid) &&
!is_victim(fd, node->nodeid)) {
node->init_victim = 1;
@@ -1842,7 +1843,7 @@ static void receive_protocol(struct fd_header *hd, int len)
log_debug("daemon node %d stateful merge", hd->nodeid);
- if (cman_quorate && node->left_time &&
+ if (cluster_quorate && node->left_time &&
quorate_time < node->left_time) {
log_debug("daemon node %d kill due to stateful merge",
hd->nodeid);
diff --git a/fence/fenced/fd.h b/fence/fenced/fd.h
index d16a49b..ab162b8 100644
--- a/fence/fenced/fd.h
+++ b/fence/fenced/fd.h
@@ -63,7 +63,7 @@ extern int daemon_debug_opt;
extern int daemon_quit;
extern int cluster_down;
extern struct list_head domains;
-extern int cman_quorate;
+extern int cluster_quorate;
extern uint64_t quorate_time;
extern int our_nodeid;
extern char our_name[MAX_NODENAME_LEN+1];
@@ -140,8 +140,8 @@ struct node_history {
uint64_t fail_time;
uint64_t fence_time;
uint64_t fence_external_time;
- uint64_t cman_add_time;
- uint64_t cman_remove_time;
+ uint64_t cluster_add_time;
+ uint64_t cluster_remove_time;
int fence_external_node;
int fence_master;
int fence_how; /* VIC_DONE_ */
@@ -223,8 +223,8 @@ int set_domain_info(struct fd *fd, struct fenced_domain *domain);
int set_domain_nodes(struct fd *fd, int option, int *node_count,
struct fenced_node **nodes);
int is_clean_daemon_member(int nodeid);
-void node_history_cman_add(int nodeid);
-void node_history_cman_remove(int nodeid);
+void node_history_cluster_add(int nodeid);
+void node_history_cluster_remove(int nodeid);
/* group.c */
@@ -251,10 +251,10 @@ void cluster_dead(int ci);
/* member_cman.c */
-void process_cman(int ci);
-int setup_cman(void);
-void close_cman(void);
-int is_cman_member_reread(int nodeid);
+void process_cluster(int ci);
+int setup_cluster(void);
+void close_cluster(void);
+int is_cluster_member_reread(int nodeid);
char *nodeid_to_name(int nodeid);
int name_to_nodeid(char *name);
struct node *get_new_node(struct fd *fd, int nodeid);
diff --git a/fence/fenced/group.c b/fence/fenced/group.c
index 0f85e85..d9ddd4e 100644
--- a/fence/fenced/group.c
+++ b/fence/fenced/group.c
@@ -173,7 +173,7 @@ static void _add_first_victims(struct fd *fd)
log_debug("first complete list empty warning");
list_for_each_entry_safe(prev_node, safe, &fd->complete, list) {
- if (!is_cman_member_reread(prev_node->nodeid)) {
+ if (!is_cluster_member_reread(prev_node->nodeid)) {
list_del(&prev_node->list);
list_add(&prev_node->list, &fd->victims);
log_debug("add first victim %s", prev_node->name);
diff --git a/fence/fenced/main.c b/fence/fenced/main.c
index 9e473d2..deb9515 100644
--- a/fence/fenced/main.c
+++ b/fence/fenced/main.c
@@ -741,10 +741,10 @@ static void loop(void)
goto out;
client_add(rv, process_listener, NULL);
- rv = setup_cman();
+ rv = setup_cluster();
if (rv < 0)
goto out;
- client_add(rv, process_cman, cluster_dead);
+ client_add(rv, process_cluster, cluster_dead);
rv = setup_ccs();
if (rv < 0)
@@ -831,7 +831,7 @@ static void loop(void)
close_cpg_daemon();
close_logging();
close_ccs();
- close_cman();
+ close_cluster();
if (!list_empty(&domains))
log_error("domain abandoned");
@@ -1068,7 +1068,7 @@ int daemon_debug_opt;
int daemon_quit;
int cluster_down;
struct list_head domains;
-int cman_quorate;
+int cluster_quorate;
uint64_t quorate_time;
int our_nodeid;
char our_name[MAX_NODENAME_LEN+1];
diff --git a/fence/fenced/member_cman.c b/fence/fenced/member_cman.c
index 5e977a6..a245adf 100644
--- a/fence/fenced/member_cman.c
+++ b/fence/fenced/member_cman.c
@@ -49,7 +49,7 @@ static int is_old_member(int nodeid)
return is_member(old_nodes, old_node_count, nodeid);
}
-static int is_cman_member(int nodeid)
+static int is_cluster_member(int nodeid)
{
return is_member(cman_nodes, cman_node_count, nodeid);
}
@@ -146,14 +146,14 @@ int name_to_nodeid(char *name)
return -1;
}
-static void statechange(void)
+static void update_cluster(void)
{
- int quorate = cman_quorate;
+ int quorate = cluster_quorate;
int i, rv;
- cman_quorate = cman_is_quorate(ch);
+ cluster_quorate = cman_is_quorate(ch);
- if (!quorate && cman_quorate)
+ if (!quorate && cluster_quorate)
quorate_time = time(NULL);
old_node_count = cman_node_count;
@@ -169,12 +169,12 @@ static void statechange(void)
for (i = 0; i < old_node_count; i++) {
if (old_nodes[i].cn_member &&
- !is_cman_member(old_nodes[i].cn_nodeid)) {
+ !is_cluster_member(old_nodes[i].cn_nodeid)) {
- log_debug("cman node %d removed",
+ log_debug("cluster node %d removed",
old_nodes[i].cn_nodeid);
- node_history_cman_remove(old_nodes[i].cn_nodeid);
+ node_history_cluster_remove(old_nodes[i].cn_nodeid);
}
}
@@ -182,17 +182,34 @@ static void statechange(void)
if (cman_nodes[i].cn_member &&
!is_old_member(cman_nodes[i].cn_nodeid)) {
- log_debug("cman node %d added",
+ log_debug("cluster node %d added",
cman_nodes[i].cn_nodeid);
- node_history_cman_add(cman_nodes[i].cn_nodeid);
+ node_history_cluster_add(cman_nodes[i].cn_nodeid);
}
}
}
+/* Note: in fence delay loop we aren't processing callbacks so won't
+ have done an update_cluster() in response to a cman callback */
+
+int is_cluster_member_reread(int nodeid)
+{
+ int rv;
+
+ update_cluster();
+
+ rv = is_cluster_member(nodeid);
+ if (rv)
+ return 1;
+
+ /* log_debug("cman_member %d not member", nodeid); */
+ return 0;
+}
+
static void cman_callback(cman_handle_t h, void *private, int reason, int arg)
{
- int quorate = cman_quorate;
+ int quorate = cluster_quorate;
switch (reason) {
case CMAN_REASON_TRY_SHUTDOWN:
@@ -204,10 +221,10 @@ static void cman_callback(cman_handle_t h, void *private, int
reason, int arg)
}
break;
case CMAN_REASON_STATECHANGE:
- statechange();
+ update_cluster();
/* domain may have been waiting for quorum */
- if (!quorate && cman_quorate && (group_mode == GROUP_LIBCPG))
+ if (!quorate && cluster_quorate && (group_mode == GROUP_LIBCPG))
process_fd_changes();
break;
@@ -218,7 +235,7 @@ static void cman_callback(cman_handle_t h, void *private, int reason,
int arg)
}
}
-void process_cman(int ci)
+void process_cluster(int ci)
{
int rv;
@@ -227,7 +244,7 @@ void process_cman(int ci)
cluster_dead(0);
}
-int setup_cman(void)
+int setup_cluster(void)
{
cman_node_t node;
int rv, fd;
@@ -272,7 +289,7 @@ int setup_cman(void)
return rv;
}
- statechange();
+ update_cluster();
fd = cman_get_fd(ch);
@@ -296,28 +313,12 @@ int setup_cman(void)
return fd;
}
-void close_cman(void)
+void close_cluster(void)
{
cman_finish(ch);
cman_finish(ch_admin);
}
-int is_cman_member_reread(int nodeid)
-{
- int rv;
-
- /* Note: in fence delay loop we aren't processing callbacks so won't
- have done a statechange() in response to a cman callback */
- statechange();
-
- rv = is_cman_member(nodeid);
- if (rv)
- return 1;
-
- /* log_debug("cman_member %d not member", nodeid); */
- return 0;
-}
-
struct node *get_new_node(struct fd *fd, int nodeid)
{
cman_node_t cn;
diff --git a/fence/fenced/recover.c b/fence/fenced/recover.c
index e0d4fd8..d3bf35f 100644
--- a/fence/fenced/recover.c
+++ b/fence/fenced/recover.c
@@ -67,7 +67,7 @@ static int reduce_victims(struct fd *fd)
num_victims = list_count(&fd->victims);
list_for_each_entry_safe(node, safe, &fd->victims, list) {
- if (is_cman_member_reread(node->nodeid) &&
+ if (is_cluster_member_reread(node->nodeid) &&
is_clean_daemon_member(node->nodeid)) {
log_debug("reduce victim %s", node->name);
victim_done(fd, node->nodeid, VIC_DONE_MEMBER);
@@ -285,7 +285,7 @@ void fence_victims(struct fd *fd)
struct node *node;
int error, i, ll, flog_count, prev_flog_count;
int override = -1;
- int cman_member, cpg_member, ext;
+ int cluster_member, cpg_member, ext;
unsigned int limit, retries;
list_for_each_entry(node, &fd->victims, list) {
@@ -325,17 +325,17 @@ void fence_victims(struct fd *fd)
/* for queries */
fd->current_victim = node->nodeid;
- cman_member = is_cman_member_reread(node->nodeid);
+ cluster_member = is_cluster_member_reread(node->nodeid);
cpg_member = is_clean_daemon_member(node->nodeid);
if (group_mode == GROUP_LIBCPG)
ext = is_fenced_external(fd, node->nodeid);
else
ext = 0;
- if ((cman_member && cpg_member) || ext) {
+ if ((cluster_member && cpg_member) || ext) {
log_debug("averting fence of node %s "
- "cman member %d cpg member %d external %d",
- node->name, cman_member, cpg_member, ext);
+ "cluster member %d cpg member %d external %d",
+ node->name, cluster_member, cpg_member, ext);
node->local_victim_done = 1;
victim_done(fd, node->nodeid,