From: Amitay Isaacs Date: Mon, 20 Nov 2017 04:37:39 +0000 (+1100) Subject: ctdb-takeover: Send tcp tickles immediately on STARTUP control X-Git-Tag: talloc-2.1.11~311 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=73e261b48c4abc91e00775ac7437752c9640e5bd;p=thirdparty%2Fsamba.git ctdb-takeover: Send tcp tickles immediately on STARTUP control BUG: https://bugzilla.samba.org/show_bug.cgi?id=13154 Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c index 22dd878818d..cd240875ba2 100644 --- a/ctdb/server/ctdb_takeover.c +++ b/ctdb/server/ctdb_takeover.c @@ -1483,24 +1483,23 @@ int32_t ctdb_control_tcp_remove(struct ctdb_context *ctdb, TDB_DATA indata) } +static void ctdb_send_set_tcp_tickles_for_all(struct ctdb_context *ctdb, + bool force); + /* Called when another daemon starts - causes all tickles for all public addresses we are serving to be sent to the new node on the - next check. This actually causes the next scheduled call to - tdb_update_tcp_tickles() to update all nodes. This is simple and + next check. This actually causes the tickles to be sent to the + other node immediately. In case there is an error, the periodic + timer will send the updates on timer event. This is simple and doesn't require careful error handling. */ int32_t ctdb_control_startup(struct ctdb_context *ctdb, uint32_t pnn) { - struct ctdb_vnn *vnn; - DEBUG(DEBUG_INFO, ("Received startup control from node %lu\n", (unsigned long) pnn)); - for (vnn = ctdb->vnn; vnn != NULL; vnn = vnn->next) { - vnn->tcp_update_needed = true; - } - + ctdb_send_set_tcp_tickles_for_all(ctdb, true); return 0; }