summaryrefslogtreecommitdiff
path: root/ctdb/client
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2017-06-23 16:15:57 +1000
committerMartin Schwenke <martins@samba.org>2017-06-26 15:47:24 +0200
commit43ca0e3d226dea933bcdb145e37e301e4711d181 (patch)
tree6c5a015756f6a2ba8b91c17f95a78742e5344d10 /ctdb/client
parent45ac7b357ae69abeafdfc0f92a8fddc87f65f264 (diff)
downloadsamba-43ca0e3d226dea933bcdb145e37e301e4711d181.tar.gz
ctdb-client: Ask daemon for db open flags
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/ctdb_client.c32
1 files changed, 7 insertions, 25 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c
index d80a04d33c7..cc23b050825 100644
--- a/ctdb/client/ctdb_client.c
+++ b/ctdb/client/ctdb_client.c
@@ -2123,9 +2123,7 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb,
TDB_DATA data;
int ret;
int32_t res;
- uint8_t db_flags = 0;
int tdb_flags;
- bool with_mutex = false;
ctdb_db = ctdb_db_handle(ctdb, name);
if (ctdb_db) {
@@ -2142,29 +2140,6 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb,
data.dptr = discard_const(name);
data.dsize = strlen(name)+1;
-#ifdef TDB_MUTEX_LOCKING
- if (!persistent) {
- uint32_t mutex_enabled = 0;
-
- ret = ctdb_ctrl_get_tunable(ctdb, timeval_current_ofs(3,0),
- CTDB_CURRENT_NODE,
- "TDBMutexEnabled",
- &mutex_enabled);
- if (ret != 0) {
- DEBUG(DEBUG_WARNING, ("Assuming no mutex support.\n"));
- }
-
- if (mutex_enabled == 1) {
- with_mutex = true;
- }
- }
-#endif
-
- if (persistent) {
- db_flags = CTDB_DB_FLAGS_PERSISTENT;
- }
- tdb_flags = ctdb_db_tdb_flags(db_flags, ctdb->valgrinding, with_mutex);
-
/* tell ctdb daemon to attach */
ret = ctdb_control(ctdb, CTDB_CURRENT_NODE, 0,
persistent?CTDB_CONTROL_DB_ATTACH_PERSISTENT:CTDB_CONTROL_DB_ATTACH,
@@ -2185,6 +2160,13 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb,
return NULL;
}
+ ret = ctdb_ctrl_db_open_flags(ctdb, ctdb_db->db_id, &tdb_flags);
+ if (ret != 0) {
+ D_ERR("Failed to get tdb_flags for database '%s'\n", name);
+ talloc_free(ctdb_db);
+ return NULL;
+ }
+
ctdb_db->ltdb = tdb_wrap_open(ctdb_db, ctdb_db->db_path, 0, tdb_flags,
O_RDWR, 0);
if (ctdb_db->ltdb == NULL) {