diff options
author | Amitay Isaacs <amitay@gmail.com> | 2017-03-02 17:34:55 +1100 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2017-06-29 10:34:27 +0200 |
commit | 006c1b68115336049d10b56c12627422b22ed654 (patch) | |
tree | 350f16da4a21519e012eda3a24355b66985393ad /ctdb/client | |
parent | b1b6ceecedaa85529f33a17dd64ba307ee5cbe2e (diff) | |
download | samba-006c1b68115336049d10b56c12627422b22ed654.tar.gz |
ctdb-client: Add db support for CTDB_DB_FLAGS_REPLICATED
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb/client')
-rw-r--r-- | ctdb/client/client_db.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/ctdb/client/client_db.c b/ctdb/client/client_db.c index 8828a8883f7..05645f54075 100644 --- a/ctdb/client/client_db.c +++ b/ctdb/client/client_db.c @@ -60,9 +60,18 @@ static bool ctdb_db_persistent(struct ctdb_db_context *db) return false; } +static bool ctdb_db_replicated(struct ctdb_db_context *db) +{ + if (db->db_flags & CTDB_DB_FLAGS_REPLICATED) { + return true; + } + return false; +} + static bool ctdb_db_volatile(struct ctdb_db_context *db) { - if (db->db_flags & CTDB_DB_FLAGS_PERSISTENT) { + if (db->db_flags & CTDB_DB_FLAGS_PERSISTENT || + db->db_flags & CTDB_DB_FLAGS_REPLICATED) { return false; } return true; @@ -320,6 +329,9 @@ struct tevent_req *ctdb_attach_send(TALLOC_CTX *mem_ctx, if (ctdb_db_persistent(state->db)) { ctdb_req_control_db_attach_persistent(&request, state->db->db_name); + } else if (ctdb_db_replicated(state->db)) { + ctdb_req_control_db_attach_replicated(&request, + state->db->db_name); } else { ctdb_req_control_db_attach(&request, state->db->db_name); } @@ -353,7 +365,9 @@ static void ctdb_attach_dbid_done(struct tevent_req *subreq) state->db->db_name, (ctdb_db_persistent(state->db) ? "DB_ATTACH_PERSISTENT" - : "DB_ATTACH"), + : (ctdb_db_replicated(state->db) + ? "DB_ATTACH_REPLICATED" + : "DB_ATTACH")), ret)); tevent_req_error(req, ret); return; @@ -362,6 +376,9 @@ static void ctdb_attach_dbid_done(struct tevent_req *subreq) if (ctdb_db_persistent(state->db)) { ret = ctdb_reply_control_db_attach_persistent( reply, &state->db->db_id); + } else if (ctdb_db_replicated(state->db)) { + ret = ctdb_reply_control_db_attach_replicated( + reply, &state->db->db_id); } else { ret = ctdb_reply_control_db_attach(reply, &state->db->db_id); } |