From 0b4e609194f1f45d80a7e6274f8de66863b8d6de Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Fri, 2 Dec 2016 14:21:59 +1100 Subject: ctdb-ipalloc: Switch available_on to struct bitmap Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/server/ipalloc.c | 5 ++--- ctdb/server/ipalloc.h | 4 +++- ctdb/server/ipalloc_common.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ctdb/server/ipalloc.c b/ctdb/server/ipalloc.c index 8b1f4f04210..df638f01daa 100644 --- a/ctdb/server/ipalloc.c +++ b/ctdb/server/ipalloc.c @@ -165,8 +165,7 @@ static bool populate_bitmap(struct ipalloc_state *ipalloc_state) 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; } @@ -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)) { - ip->available_on[i] = true; + bitmap_set(ip->available_on, i); break; } } diff --git a/ctdb/server/ipalloc.h b/ctdb/server/ipalloc.h index 40edddacb44..842b9afa0f5 100644 --- a/ctdb/server/ipalloc.h +++ b/ctdb/server/ipalloc.h @@ -27,11 +27,13 @@ #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; - bool *available_on; + struct bitmap *available_on; }; #define IP_KEYLEN 4 diff --git a/ctdb/server/ipalloc_common.c b/ctdb/server/ipalloc_common.c index 6886a8183da..d961b871739 100644 --- a/ctdb/server/ipalloc_common.c +++ b/ctdb/server/ipalloc_common.c @@ -65,7 +65,7 @@ static bool can_node_host_ip(struct ipalloc_state *ipalloc_state, return false; } - return ip->available_on[pnn]; + return bitmap_query(ip->available_on, pnn); } bool can_node_takeover_ip(struct ipalloc_state *ipalloc_state, -- cgit v1.2.1