{
int locked;
+ if (tdb->flags & TDB_NOLOCK) {
+ /*
+ * We don't look at locks, so it does not matter to have a
+ * compatible mutex implementation. Allow the open.
+ */
+ return true;
+ }
+
locked = tdb_nest_lock(tdb, ACTIVE_LOCK, F_WRLCK,
TDB_LOCK_NOWAIT|TDB_LOCK_PROBE);
return false;
}
- if (tdb->flags & TDB_NOLOCK) {
- /*
- * We don't look at locks, so it does not matter to have a
- * compatible mutex implementation. Allow the open.
- */
- return true;
- }
-
check_local_settings:
if (!(tdb->flags & TDB_MUTEX_LOCKING)) {
tdb->read_only = 1;
/* read only databases don't do locking or clear if first */
tdb->flags |= TDB_NOLOCK;
- tdb->flags &= ~TDB_CLEAR_IF_FIRST;
+ tdb->flags &= ~(TDB_CLEAR_IF_FIRST|TDB_MUTEX_LOCKING);
}
if ((tdb->flags & TDB_ALLOW_NESTING) &&