recoverd: basic_failback() can call find_takeover_node() directly
authorMartin Schwenke <martin@meltin.net>
Tue, 11 Dec 2012 04:43:36 +0000 (15:43 +1100)
committerMartin Schwenke <martin@meltin.net>
Mon, 7 Jan 2013 23:16:11 +0000 (10:16 +1100)
Instead of unassigning, looping back and depending on
basic_allocate_unassigned.

Signed-off-by: Martin Schwenke <martin@meltin.net>
server/ctdb_takeover.c

index 412480e2260f8fff60fb20ba1c6c99fd82db23fa..bf12212c07d1d4b795c210960bdebda2eb6af5dc 100644 (file)
@@ -1683,12 +1683,10 @@ static bool basic_failback(struct ctdb_context *ctdb,
                     && (*retries < (num_ips + 5)) ){
                        struct ctdb_public_ip_list *tmp;
 
-                       /* mark one of maxnode's vnn's as unassigned and try
-                          again
-                       */
+                       /* Reassign one of maxnode's VNNs */
                        for (tmp=all_ips;tmp;tmp=tmp->next) {
                                if (tmp->pnn == maxnode) {
-                                       tmp->pnn = -1;
+                                       (void)find_takeover_node(ctdb, nodemap, mask, tmp, all_ips);
                                        (*retries)++;
                                        return true;
                                }