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) {
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,
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) {