uint32_t pnn;
uint32_t *t;
int len;
+ uint32_t deferred_rebalance;
struct ctdb_recoverd *rec = talloc_get_type(private_data, struct ctdb_recoverd);
if (rec->recmaster != ctdb_get_pnn(ctdb)) {
return;
}
- if (ctdb->tunable.deferred_rebalance_on_node_add == 0) {
- return;
- }
-
pnn = *(uint32_t *)&data.dptr[0];
DEBUG(DEBUG_NOTICE,("Setting up rebalance of IPs to node %u\n", pnn));
talloc_free(rec->force_rebalance_nodes);
rec->force_rebalance_nodes = t;
- event_add_timed(ctdb->ev, rec->force_rebalance_nodes,
- timeval_current_ofs(ctdb->tunable.deferred_rebalance_on_node_add, 0),
- ctdb_rebalance_timeout, rec);
+
+ /* If configured, setup a deferred takeover run to make sure
+ * that certain nodes get IPs rebalanced to them. This will
+ * be cancelled if a successful takeover run happens before
+ * the timeout. Assign tunable value to variable for
+ * readability.
+ */
+ deferred_rebalance = ctdb->tunable.deferred_rebalance_on_node_add;
+ if (deferred_rebalance != 0) {
+ event_add_timed(ctdb->ev, rec->force_rebalance_nodes,
+ timeval_current_ofs(deferred_rebalance, 0),
+ ctdb_rebalance_timeout, rec);
+ }
}