------------------------------------------------------------ revno: 327 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell <[EMAIL PROTECTED]> branch nick: tridge timestamp: Sat 2007-05-19 17:21:58 +1000 message: merge from ronnie modified: common/ctdb.c ctdb.c-20061127094323-t50f58d65iaao5of-2 common/ctdb_monitor.c ctdb_monitor.c-20070518100625-8jf4ft1mjzmb22ck-1 include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13 ------------------------------------------------------------ revno: 326.1.1 merged: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Ronnie Sahlberg <[EMAIL PROTECTED]> branch nick: ctdb timestamp: Sat 2007-05-19 16:59:10 +1000 message: use ctdb_dead_node() instead of reimplementing the same code again this leaves only one single function where a node is marked as dead instead of two places === modified file 'common/ctdb.c' --- a/common/ctdb.c 2007-05-19 04:04:48 +0000 +++ b/common/ctdb.c 2007-05-19 07:21:58 +0000 @@ -380,11 +380,12 @@ /* called by the transport layer when a node is dead */ -static void ctdb_node_dead(struct ctdb_node *node) +void ctdb_node_dead(struct ctdb_node *node) { node->ctdb->num_connected--; node->flags &= ~NODE_FLAGS_CONNECTED; node->rx_cnt = 0; + node->dead_count = 0; DEBUG(1,("%s: node %s is dead: %d connected\n", node->ctdb->name, node->name, node->ctdb->num_connected)); ctdb_daemon_cancel_controls(node->ctdb, node); @@ -393,9 +394,10 @@ /* called by the transport layer when a node is connected */ -static void ctdb_node_connected(struct ctdb_node *node) +void ctdb_node_connected(struct ctdb_node *node) { node->ctdb->num_connected++; + node->dead_count = 0; node->flags |= NODE_FLAGS_CONNECTED; DEBUG(1,("%s: connected to %s - %d connected\n", node->ctdb->name, node->name, node->ctdb->num_connected));
=== modified file 'common/ctdb_monitor.c' --- a/common/ctdb_monitor.c 2007-05-19 00:20:19 +0000 +++ b/common/ctdb_monitor.c 2007-05-19 07:21:58 +0000 @@ -43,8 +43,8 @@ /* it might have come alive again */ if (!(node->flags & NODE_FLAGS_CONNECTED) && node->rx_cnt != 0) { - DEBUG(0,("Node %u is alive again - marking as connected\n", node->vnn)); - node->flags |= NODE_FLAGS_CONNECTED; + ctdb_node_connected(node); + continue; } if (node->rx_cnt == 0) { @@ -56,9 +56,7 @@ node->rx_cnt = 0; if (node->dead_count >= CTDB_MONITORING_DEAD_COUNT) { - DEBUG(0,("Node %u is dead - marking as not connected\n", node->vnn)); - node->flags &= ~NODE_FLAGS_CONNECTED; - ctdb_daemon_cancel_controls(ctdb, node); + ctdb_node_dead(node); /* maybe tell the transport layer to kill the sockets as well? */ === modified file 'include/ctdb_private.h' --- a/include/ctdb_private.h 2007-05-19 03:45:24 +0000 +++ b/include/ctdb_private.h 2007-05-19 07:21:58 +0000 @@ -826,5 +826,7 @@ void ctdb_daemon_cancel_controls(struct ctdb_context *ctdb, struct ctdb_node *node); void ctdb_call_resend_all(struct ctdb_context *ctdb); +void ctdb_node_dead(struct ctdb_node *node); +void ctdb_node_connected(struct ctdb_node *node); #endif