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
#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,
/* 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;
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]) {
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]) {
- /* 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;
*/
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;
*/
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;
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,
- 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;
}