------------------------------------------------------------
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

Reply via email to