From 7d0a4ab6229b19ee55f79cdcf6de811b429e4657 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Fri, 8 May 2015 15:20:04 +1000 Subject: [PATCH] ctdb-daemon: Never release all IPs when DisableIPFailover is set If DisableIPFailover is set then something else may be managing public IP addresses so CTDB should leave them alone. Pair-programmed-with: Amitay Isaacs Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/server/ctdb_daemon.c | 4 +--- ctdb/server/ctdb_takeover.c | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c index 1dd0a6d804e..fa54d3da5bc 100644 --- a/ctdb/server/ctdb_daemon.c +++ b/ctdb/server/ctdb_daemon.c @@ -1335,9 +1335,7 @@ int ctdb_start_daemon(struct ctdb_context *ctdb, bool do_fork) tevent_fd_set_auto_close(fde); /* release any IPs we hold from previous runs of the daemon */ - if (ctdb->tunable.disable_ip_failover == 0) { - ctdb_release_all_ips(ctdb); - } + ctdb_release_all_ips(ctdb); /* Start the transport */ if (ctdb->methods->start(ctdb) != 0) { diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c index e37f193b7fb..510c8835aaa 100644 --- a/ctdb/server/ctdb_takeover.c +++ b/ctdb/server/ctdb_takeover.c @@ -3136,6 +3136,10 @@ void ctdb_release_all_ips(struct ctdb_context *ctdb) struct ctdb_vnn *vnn; int count = 0; + if (ctdb->tunable.disable_ip_failover == 1) { + return; + } + for (vnn=ctdb->vnn;vnn;vnn=vnn->next) { if (!ctdb_sys_have_ip(&vnn->public_address)) { ctdb_vnn_unassign_iface(ctdb, vnn); -- 2.11.4.GIT