ctdb-ipalloc: Drop unnecessary struct ctdb_ipflags
authorMartin Schwenke <martin@meltin.net>
Tue, 3 Nov 2015 05:41:55 +0000 (16:41 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 23 Nov 2015 04:34:55 +0000 (05:34 +0100)
This can be easily decomposed into 2 separate arrays.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Mon Nov 23 05:34:55 CET 2015 on sn-devel-104

ctdb/server/ctdb_takeover.c

index 33f99075ff7bf01d9b04b7c97f8a244d2eb4539e..00d35e1636717df58fc6aba768ded0aab2e08213 100644 (file)
 #define CTDB_ARP_REPEAT   3
 
 /* Flags used in IP allocation algorithms. */
 #define CTDB_ARP_REPEAT   3
 
 /* Flags used in IP allocation algorithms. */
-struct ctdb_ipflags {
-       bool noiptakeover;
-       bool noiphost;
-};
-
 enum ipalloc_algorithm {
        IPALLOC_DETERMINISTIC,
        IPALLOC_NONDETERMINISTIC,
 enum ipalloc_algorithm {
        IPALLOC_DETERMINISTIC,
        IPALLOC_NONDETERMINISTIC,
@@ -65,7 +60,8 @@ struct ipalloc_state {
        /* Arrays with data for each node */
        struct ctdb_public_ip_list_old **known_public_ips;
        struct ctdb_public_ip_list_old **available_public_ips;
        /* Arrays with data for each node */
        struct ctdb_public_ip_list_old **known_public_ips;
        struct ctdb_public_ip_list_old **available_public_ips;
-       struct ctdb_ipflags *ipflags;
+       bool *noiptakeover;
+       bool *noiphost;
 
        enum ipalloc_algorithm algorithm;
        uint32_t no_ip_failback;
 
        enum ipalloc_algorithm algorithm;
        uint32_t no_ip_failback;
@@ -1283,7 +1279,7 @@ static bool can_node_host_ip(struct ipalloc_state *ipalloc_state,
        struct ctdb_public_ip_list_old *public_ips;
        int i;
 
        struct ctdb_public_ip_list_old *public_ips;
        int i;
 
-       if (ipalloc_state->ipflags[pnn].noiphost) {
+       if (ipalloc_state->noiphost[pnn]) {
                return false;
        }
 
                return false;
        }
 
@@ -1307,7 +1303,7 @@ static bool can_node_takeover_ip(struct ipalloc_state *ipalloc_state,
                                 int32_t pnn,
                                 struct public_ip_list *ip)
 {
                                 int32_t pnn,
                                 struct public_ip_list *ip)
 {
-       if (ipalloc_state->ipflags[pnn].noiptakeover) {
+       if (ipalloc_state->noiptakeover[pnn]) {
                return false;
        }
 
                return false;
        }
 
@@ -2367,17 +2363,15 @@ static void set_ipflags_internal(struct ipalloc_state *ipalloc_state,
 {
        int i;
 
 {
        int i;
 
-       /* IP flags cleared at this point - implicit due to talloc_zero */
-
        for (i=0;i<nodemap->num;i++) {
                /* Can not take IPs on node with NoIPTakeover set */
                if (tval_noiptakeover[i] != 0) {
        for (i=0;i<nodemap->num;i++) {
                /* Can not take IPs on node with NoIPTakeover set */
                if (tval_noiptakeover[i] != 0) {
-                       ipalloc_state->ipflags[i].noiptakeover = true;
+                       ipalloc_state->noiptakeover[i] = true;
                }
 
                /* Can not host IPs on INACTIVE node */
                if (nodemap->nodes[i].flags & NODE_FLAGS_INACTIVE) {
                }
 
                /* Can not host IPs on INACTIVE node */
                if (nodemap->nodes[i].flags & NODE_FLAGS_INACTIVE) {
-                       ipalloc_state->ipflags[i].noiphost = true;
+                       ipalloc_state->noiphost[i] = true;
                }
        }
 
                }
        }
 
@@ -2387,7 +2381,7 @@ static void set_ipflags_internal(struct ipalloc_state *ipalloc_state,
                 */
                for (i=0;i<nodemap->num;i++) {
                        if (tval_noiphostonalldisabled[i] != 0) {
                 */
                for (i=0;i<nodemap->num;i++) {
                        if (tval_noiphostonalldisabled[i] != 0) {
-                               ipalloc_state->ipflags[i].noiphost = true;
+                               ipalloc_state->noiphost[i] = true;
                        }
                }
        } else {
                        }
                }
        } else {
@@ -2396,7 +2390,7 @@ static void set_ipflags_internal(struct ipalloc_state *ipalloc_state,
                 */
                for (i=0;i<nodemap->num;i++) {
                        if (nodemap->nodes[i].flags & NODE_FLAGS_DISABLED) {
                 */
                for (i=0;i<nodemap->num;i++) {
                        if (nodemap->nodes[i].flags & NODE_FLAGS_DISABLED) {
-                               ipalloc_state->ipflags[i].noiphost = true;
+                               ipalloc_state->noiphost[i] = true;
                        }
                }
        }
                        }
                }
        }
@@ -2462,12 +2456,21 @@ static struct ipalloc_state * ipalloc_state_init(struct ctdb_context *ctdb,
                talloc_free(ipalloc_state);
                return NULL;
        }
                talloc_free(ipalloc_state);
                return NULL;
        }
-       ipalloc_state->ipflags =
+       ipalloc_state->noiptakeover =
                talloc_zero_array(ipalloc_state,
                talloc_zero_array(ipalloc_state,
-                                 struct ctdb_ipflags,
+                                 bool,
                                  ipalloc_state->num);
                                  ipalloc_state->num);
-       if (ipalloc_state->ipflags == NULL) {
-               DEBUG(DEBUG_ERR, (__location__ " out of memory\n"));
+       if (ipalloc_state->noiptakeover == NULL) {
+               DEBUG(DEBUG_ERR, (__location__ " Out of memory\n"));
+               talloc_free(ipalloc_state);
+               return NULL;
+       }
+       ipalloc_state->noiphost =
+               talloc_zero_array(ipalloc_state,
+                                 bool,
+                                 ipalloc_state->num);
+       if (ipalloc_state->noiphost == NULL) {
+               DEBUG(DEBUG_ERR, (__location__ " Out of memory\n"));
                talloc_free(ipalloc_state);
                return NULL;
        }
                talloc_free(ipalloc_state);
                return NULL;
        }