]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3/locking: pass persistent to brl_lock() and add it to struct lock_struct
authorRalph Boehme <slow@samba.org>
Sat, 6 Dec 2025 15:58:24 +0000 (16:58 +0100)
committerRalph Boehme <slow@samba.org>
Fri, 17 Jul 2026 10:18:37 +0000 (10:18 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source3/include/locking.h
source3/locking/brlock.c
source3/locking/locking.c
source3/locking/proto.h

index 695c6af814480c718a471803d6f9bf5df5eda2cd..66532be4c8beacbbc8c7f5dd785c1ef60ba6a92a 100644 (file)
@@ -75,6 +75,7 @@ struct lock_struct {
        uint64_t fnum;
        enum brl_type lock_type;
        enum brl_flavour lock_flav;
+       bool persistent;
 };
 
 struct smbd_lock_element {
index 029fb920630adc79202dcee64dccf691e520d896..f46147b7153f03e699affca2ff29dc2b9e7f3efd 100644 (file)
@@ -937,6 +937,7 @@ NTSTATUS brl_lock(
        br_off size,
        enum brl_type lock_type,
        enum brl_flavour lock_flav,
+       bool persistent,
        struct server_id *blocker_pid,
        uint64_t *psmblctx)
 {
@@ -953,7 +954,8 @@ NTSTATUS brl_lock(
                .size = size,
                .fnum = br_lck->fsp->fnum,
                .lock_type = lock_type,
-               .lock_flav = lock_flav
+               .lock_flav = lock_flav,
+               .persistent = persistent,
        };
 
        if (lock_flav == WINDOWS_LOCK) {
index f3f51682e680d84e0e1cecdfb93035f7f7cb17ec..22691896bda5232548cc953e50694c062f836a2a 100644 (file)
@@ -324,6 +324,7 @@ NTSTATUS do_lock(struct byte_range_lock *br_lck,
                          count,
                          lock_type,
                          lock_flav,
+                         fsp->op->global->persistent,
                          &blocker_pid,
                          &blocker_smblctx);
        brl_req_set(br_lck, NULL, NULL);
index e12c34712a4c5d82066cf9a206ee53cb87df428c..0cb19a25a56434873d9c7cbdac0bd34de40d7c65 100644 (file)
@@ -55,6 +55,7 @@ NTSTATUS brl_lock(
        br_off size,
        enum brl_type lock_type,
        enum brl_flavour lock_flav,
+       bool persistent,
        struct server_id *blocker_pid,
        uint64_t *psmblctx);
 bool brl_unlock(struct byte_range_lock *br_lck,