diff options
author | Amitay Isaacs <amitay@gmail.com> | 2017-06-23 16:15:57 +1000 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2017-06-26 15:47:24 +0200 |
commit | 43ca0e3d226dea933bcdb145e37e301e4711d181 (patch) | |
tree | 6c5a015756f6a2ba8b91c17f95a78742e5344d10 /ctdb/client | |
parent | 45ac7b357ae69abeafdfc0f92a8fddc87f65f264 (diff) | |
download | samba-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.c | 32 |
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) { |