summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2016-12-02 14:21:59 +1100
committerMartin Schwenke <martins@samba.org>2017-02-24 07:47:11 +0100
commit0b4e609194f1f45d80a7e6274f8de66863b8d6de (patch)
tree645994f69251a5ea4c1b4f69e7a0a783355f62e2
parent138deeaa7f6eba59d7b31324060505ade2bd3b5d (diff)
downloadsamba-0b4e609194f1f45d80a7e6274f8de66863b8d6de.tar.gz
ctdb-ipalloc: Switch available_on to struct bitmap
Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
-rw-r--r--ctdb/server/ipalloc.c5
-rw-r--r--ctdb/server/ipalloc.h4
-rw-r--r--ctdb/server/ipalloc_common.c2
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,