]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3/locking: add support for opening locking.tdb with DBWRAP_FLAG_PER_REC_PERSISTENT
authorRalph Boehme <slow@samba.org>
Sat, 18 Nov 2017 14:50:53 +0000 (15:50 +0100)
committerRalph Boehme <slow@samba.org>
Fri, 17 Jul 2026 10:18:36 +0000 (10:18 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source3/locking/share_mode_lock.c

index 90fc4baaa7cb247e9bf56b63c2556d29947c3018..7047fdf97bfab136cccd2bbc84c6f21823613dce 100644 (file)
@@ -114,6 +114,7 @@ static bool locking_init_internal(bool read_only)
 {
        struct db_context *backend;
        char *db_path;
+       uint64_t dbwrap_flags = DBWRAP_FLAG_NONE;
 
        brl_init(read_only);
 
@@ -126,13 +127,17 @@ static bool locking_init_internal(bool read_only)
                return false;
        }
 
+       if (lp_persistent_handles()) {
+               dbwrap_flags |= DBWRAP_FLAG_PER_REC_PERSISTENT;
+       }
+
        backend = db_open(NULL, db_path,
                          SMBD_VOLATILE_TDB_HASH_SIZE,
                          SMBD_VOLATILE_TDB_FLAGS |
                          TDB_SEQNUM,
                          read_only?O_RDONLY:O_RDWR|O_CREAT, 0640,
                          DBWRAP_LOCK_ORDER_NONE,
-                         DBWRAP_FLAG_NONE);
+                         dbwrap_flags);
        TALLOC_FREE(db_path);
        if (!backend) {
                DEBUG(0,("ERROR: Failed to initialise locking database\n"));