summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2014-07-31 15:28:52 +1000
committerAmitay Isaacs <amitay@samba.org>2015-05-10 03:22:13 +0200
commiteb206f5d30014f8f74a5db9930e372a0c1a83822 (patch)
treebe8b95217bc06d67641e881ecf0c98a2412828bb /ctdb
parentc3d6678dbc3e26dfb7f4714c9d171c2e82d9af7c (diff)
downloadsamba-eb206f5d30014f8f74a5db9930e372a0c1a83822.tar.gz
ctdb-daemon: Remove unused capabilities field from struct ctdb_node
Update the ctdb tool test stub code to cope. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/include/ctdb_private.h5
-rw-r--r--ctdb/tests/src/ctdb_test_stubs.c19
2 files changed, 17 insertions, 7 deletions
diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h
index 532f8595869..3391560421c 100644
--- a/ctdb/include/ctdb_private.h
+++ b/ctdb/include/ctdb_private.h
@@ -222,11 +222,6 @@ struct ctdb_node {
uint32_t rx_cnt;
uint32_t tx_cnt;
- /* used to track node capabilities, is only valid/tracked inside the
- recovery daemon.
- */
- uint32_t capabilities;
-
/* a list of controls pending to this node, so we can time them out quickly
if the node becomes disconnected */
struct daemon_control_state *pending_controls;
diff --git a/ctdb/tests/src/ctdb_test_stubs.c b/ctdb/tests/src/ctdb_test_stubs.c
index b3000550ac0..23f6585ff00 100644
--- a/ctdb/tests/src/ctdb_test_stubs.c
+++ b/ctdb/tests/src/ctdb_test_stubs.c
@@ -20,6 +20,8 @@
/* Useful for functions that don't get struct ctdb_context passed */
static struct ctdb_context *ctdb_global;
+static struct ctdb_node_capabilities *global_caps = NULL;
+
/* Read a nodemap from stdin. Each line looks like:
* <PNN> <FLAGS> [RECMASTER] [CURRENT] [CAPABILITIES]
* EOF or a blank line terminates input.
@@ -130,7 +132,13 @@ static void ctdb_test_stubs_read_nodemap(struct ctdb_context *ctdb)
ctdb->nodes[ctdb->num_nodes]->pnn = pnn;
parse_ip(ip, NULL, 0, &ctdb->nodes[ctdb->num_nodes]->address);
ctdb->nodes[ctdb->num_nodes]->flags = flags;
- ctdb->nodes[ctdb->num_nodes]->capabilities = capabilities;
+
+ global_caps = talloc_realloc(ctdb, global_caps,
+ struct ctdb_node_capabilities,
+ ctdb->num_nodes+1);
+ global_caps[ctdb->num_nodes].capabilities = capabilities;
+ global_caps[ctdb->num_nodes].retrieved = true;
+
ctdb->num_nodes++;
}
}
@@ -725,6 +733,8 @@ int ctdb_ctrl_getcapabilities_stub(struct ctdb_context *ctdb,
struct timeval timeout, uint32_t destnode,
uint32_t *capabilities)
{
+ uint32_t *capp;
+
assert_nodes_set(ctdb);
if (ctdb->nodes[destnode]->flags & NODE_FLAGS_FAKE_TIMEOUT) {
@@ -748,7 +758,12 @@ int ctdb_ctrl_getcapabilities_stub(struct ctdb_context *ctdb,
return -1;
}
- *capabilities = ctdb->nodes[destnode]->capabilities;
+ capp = ctdb_get_node_capabilities(global_caps, destnode);
+ if (capp == NULL) {
+ DEBUG(DEBUG_ERR, ("__LOCATION__ invalid PNN\n"));
+ return -1;
+ }
+ *capabilities = *capp;
return 0;
}