]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3/locking: add flags to share_mode_g_lock_writev()
authorRalph Boehme <slow@samba.org>
Wed, 19 Feb 2025 16:18:22 +0000 (17:18 +0100)
committerRalph Boehme <slow@samba.org>
Fri, 17 Jul 2026 10:18:36 +0000 (10:18 +0000)
Needed to pass DBWRAP_[STORE|DROP]_PERSISTENT through the layers.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source3/locking/share_mode_lock.c

index 5e54198def60b8f202b4eb98bbc1df1970569ee3..cbf3ad49b174141fcde1d2886aea45e22d68fd18 100644 (file)
@@ -99,14 +99,15 @@ static NTSTATUS share_mode_g_lock_dump(TDB_DATA key,
 
 static NTSTATUS share_mode_g_lock_writev(TDB_DATA key,
                                         const TDB_DATA *dbufs,
-                                        size_t num_dbufs)
+                                        size_t num_dbufs,
+                                        int flags)
 {
        if (share_mode_g_lock_within_cb(key)) {
                return g_lock_lock_cb_writev(current_share_mode_glck,
-                                            dbufs, num_dbufs, 0);
+                                            dbufs, num_dbufs, flags);
        }
 
-       return g_lock_writev_data(lock_ctx, key, dbufs, num_dbufs, 0);
+       return g_lock_writev_data(lock_ctx, key, dbufs, num_dbufs, flags);
 }
 
 static bool locking_init_internal(bool read_only)
@@ -535,7 +536,7 @@ static NTSTATUS locking_tdb_data_store(
                /*
                 * Nothing to write
                 */
-               status = share_mode_g_lock_writev(key, NULL, 0);
+               status = share_mode_g_lock_writev(key, NULL, 0, 0);
                if (!NT_STATUS_IS_OK(status)) {
                        DBG_ERR("share_mode_g_lock_writev(NULL) failed: %s\n",
                                nt_errstr(status));
@@ -569,7 +570,7 @@ static NTSTATUS locking_tdb_data_store(
                       num_share_mode_dbufs * sizeof(TDB_DATA));
        }
 
-       status = share_mode_g_lock_writev(key, dbufs, ARRAY_SIZE(dbufs));
+       status = share_mode_g_lock_writev(key, dbufs, ARRAY_SIZE(dbufs), 0);
        if (!NT_STATUS_IS_OK(status)) {
                DBG_ERR("share_mode_g_lock_writev() failed: %s\n",
                        nt_errstr(status));