ctdb-ipalloc: Switch available_on to struct bitmap
authorMartin Schwenke <martin@meltin.net>
Fri, 2 Dec 2016 03:21:59 +0000 (14:21 +1100)
committerMartin Schwenke <martins@samba.org>
Fri, 24 Feb 2017 06:47:11 +0000 (07:47 +0100)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ipalloc.c
ctdb/server/ipalloc.h
ctdb/server/ipalloc_common.c

index 8b1f4f04210a50fe0d8ec7383239f38f3b5bbae0..df638f01daa06f3319d5483db09d76422389df41 100644 (file)
@@ -165,8 +165,7 @@ static bool populate_bitmap(struct ipalloc_state *ipalloc_state)
 
        for (ip = ipalloc_state->all_ips; ip != NULL; ip = ip->next) {
 
 
        for (ip = ipalloc_state->all_ips; ip != NULL; ip = ip->next) {
 
-               ip->available_on = talloc_zero_array(ip, bool,
-                                                    ipalloc_state->num);
+               ip->available_on = bitmap_talloc(ip, ipalloc_state->num);
                if (ip->available_on == NULL) {
                        return false;
                }
                if (ip->available_on == NULL) {
                        return false;
                }
@@ -179,7 +178,7 @@ static bool populate_bitmap(struct ipalloc_state *ipalloc_state)
                        for (j = 0; j < avail->num; j++) {
                                if (ctdb_sock_addr_same_ip(
                                            &ip->addr, &avail->ip[j].addr)) {
                        for (j = 0; j < avail->num; j++) {
                                if (ctdb_sock_addr_same_ip(
                                            &ip->addr, &avail->ip[j].addr)) {
-                                       ip->available_on[i] = true;
+                                       bitmap_set(ip->available_on, i);
                                        break;
                                }
                        }
                                        break;
                                }
                        }
index 40edddacb442067eced880382fcbd47e97d186a9..842b9afa0f54cc42a7607c6b723398769e357386 100644 (file)
 #include "replace.h"
 #include "system/network.h"
 
 #include "replace.h"
 #include "system/network.h"
 
+#include "lib/util/bitmap.h"
+
 struct public_ip_list {
        struct public_ip_list *next;
        uint32_t pnn;
        ctdb_sock_addr addr;
 struct public_ip_list {
        struct public_ip_list *next;
        uint32_t pnn;
        ctdb_sock_addr addr;
-       bool *available_on;
+       struct bitmap *available_on;
 };
 
 #define IP_KEYLEN      4
 };
 
 #define IP_KEYLEN      4
index 6886a8183da0775f9375feafac2dfa1ce4cf6b32..d961b871739555996b362e1e062f2eafe257dc68 100644 (file)
@@ -65,7 +65,7 @@ static bool can_node_host_ip(struct ipalloc_state *ipalloc_state,
                return false;
        }
 
                return false;
        }
 
-       return ip->available_on[pnn];
+       return bitmap_query(ip->available_on, pnn);
 }
 
 bool can_node_takeover_ip(struct ipalloc_state *ipalloc_state,
 }
 
 bool can_node_takeover_ip(struct ipalloc_state *ipalloc_state,