ctdb-recoverd: Improve election win messages
[obnox/samba/samba-obnox.git] / ctdb / server / ctdb_recover.c
index 1742e34bb268593cb7940e00af63ae8939f4b06e..3be4840b462e9b75ac90d33a57cc5dee046a4977 100644 (file)
@@ -744,6 +744,7 @@ int32_t ctdb_control_db_push_confirm(struct ctdb_context *ctdb,
        outdata->dsize = sizeof(uint32_t);
 
        talloc_free(state);
+       ctdb_db->push_started = false;
        ctdb_db->push_state = NULL;
 
        return 0;
@@ -916,18 +917,14 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb,
        state->ctdb = ctdb;
        state->c = NULL;
 
-       h = ctdb_cluster_mutex(state, ctdb, ctdb->recovery_lock, 5);
+       h = ctdb_cluster_mutex(state, ctdb, ctdb->recovery_lock, 5,
+                              set_recmode_handler, state, NULL, NULL);
        if (h == NULL) {
                talloc_free(state);
                return -1;
        }
 
        state->c = talloc_steal(state, c);
-
-       /* set_recmode_handler() frees state/h */
-       ctdb_cluster_mutex_set_handler(h,
-                                      set_recmode_handler,
-                                      state);
        *async_reply = true;
 
        return 0;
@@ -1609,12 +1606,14 @@ int32_t ctdb_control_set_recmaster(struct ctdb_context *ctdb, uint32_t opcode, T
 
        if (ctdb->pnn != new_recmaster && ctdb->recovery_master == ctdb->pnn) {
                DEBUG(DEBUG_NOTICE,
-                     ("This node (%u) is no longer the recovery master\n", ctdb->pnn));
+                     ("Remote node (%u) is now the recovery master\n",
+                      new_recmaster));
        }
 
        if (ctdb->pnn == new_recmaster && ctdb->recovery_master != new_recmaster) {
                DEBUG(DEBUG_NOTICE,
-                     ("This node (%u) is now the recovery master\n", ctdb->pnn));
+                     ("This node (%u) is now the recovery master\n",
+                      ctdb->pnn));
        }
 
        ctdb->recovery_master = new_recmaster;