summaryrefslogtreecommitdiff
path: root/ctdb/server
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2013-06-06 16:12:07 +1000
committerAmitay Isaacs <amitay@gmail.com>2013-07-10 14:33:19 +1000
commit557b92fc88eedca5307523389d47f96c742f8d7c (patch)
tree820bcf2c6eecbeac735f0b35eb6e5d1c799a0755 /ctdb/server
parent3dcdd39801be3008adf15f36130773b5f342bee8 (diff)
downloadsamba-557b92fc88eedca5307523389d47f96c742f8d7c.tar.gz
traverse: Pass reqid and srcnode information to local database traverse
So that traverse child process can directly send the TRAVERSE_DATA control to the srcnode without first sending it to local node. Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit faabce1b99fb3de9ff03bf54d303e7656538fee3)
Diffstat (limited to 'ctdb/server')
-rw-r--r--ctdb/server/ctdb_traverse.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_traverse.c b/ctdb/server/ctdb_traverse.c
index 8d8a51776a1..b5dd82227a9 100644
--- a/ctdb/server/ctdb_traverse.c
+++ b/ctdb/server/ctdb_traverse.c
@@ -38,6 +38,8 @@ struct ctdb_traverse_local_handle {
pid_t child;
uint64_t srvid;
uint32_t client_reqid;
+ uint32_t reqid;
+ int srcnode;
void *private_data;
ctdb_traverse_fn_t callback;
struct timeval start_time;
@@ -169,7 +171,9 @@ static struct ctdb_traverse_local_handle *ctdb_traverse_local(struct ctdb_db_con
h->private_data = all_state;
h->ctdb_db = ctdb_db;
h->client_reqid = all_state->client_reqid;
+ h->reqid = all_state->reqid;
h->srvid = all_state->srvid;
+ h->srcnode = all_state->srcnode;
h->withemptyrecords = all_state->withemptyrecords;
if (h->child == 0) {