From 5b69009b25886bfa8b07e3ac885064ffa730f9bf Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 2 Jul 2001 02:42:41 +0000 Subject: Fixed the nastiest locking bug to track down.... smb_pids are sent in the lockingX calls - use that instead of smb_pid in the packet. Jeremy. (This used to be commit a3925cb9c6303ce24e5fecad6c8f3a0ba78b9ee0) --- source3/locking/locking.c | 12 ++++++------ source3/locking/posix.c | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'source3/locking') diff --git a/source3/locking/locking.c b/source3/locking/locking.c index a75388081e..067b1dc0dd 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -37,7 +37,7 @@ #include "includes.h" extern int DEBUGLEVEL; -int global_smbpid; +uint16 global_smbpid; /* the locking database handle */ static TDB_CONTEXT *tdb; @@ -99,7 +99,7 @@ BOOL is_locked(files_struct *fsp,connection_struct *conn, Utility function called by locking requests. ****************************************************************************/ -BOOL do_lock(files_struct *fsp,connection_struct *conn, +BOOL do_lock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, SMB_BIG_UINT count,SMB_BIG_UINT offset,enum brl_type lock_type, int *eclass,uint32 *ecode) { @@ -119,7 +119,7 @@ BOOL do_lock(files_struct *fsp,connection_struct *conn, if (OPEN_FSP(fsp) && fsp->can_lock && (fsp->conn == conn)) { ok = brl_lock(fsp->dev, fsp->inode, fsp->fnum, - global_smbpid, sys_getpid(), conn->cnum, + lock_pid, sys_getpid(), conn->cnum, offset, count, lock_type); @@ -139,7 +139,7 @@ BOOL do_lock(files_struct *fsp,connection_struct *conn, * lock entry. */ (void)brl_unlock(fsp->dev, fsp->inode, fsp->fnum, - global_smbpid, sys_getpid(), conn->cnum, + lock_pid, sys_getpid(), conn->cnum, offset, count); } } @@ -157,7 +157,7 @@ BOOL do_lock(files_struct *fsp,connection_struct *conn, Utility function called by unlocking requests. ****************************************************************************/ -BOOL do_unlock(files_struct *fsp,connection_struct *conn, +BOOL do_unlock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, SMB_BIG_UINT count,SMB_BIG_UINT offset, int *eclass,uint32 *ecode) { @@ -182,7 +182,7 @@ BOOL do_unlock(files_struct *fsp,connection_struct *conn, */ ok = brl_unlock(fsp->dev, fsp->inode, fsp->fnum, - global_smbpid, sys_getpid(), conn->cnum, offset, count); + lock_pid, sys_getpid(), conn->cnum, offset, count); if (!ok) { DEBUG(10,("do_unlock: returning ERRlock.\n" )); diff --git a/source3/locking/posix.c b/source3/locking/posix.c index 9cfe25ed9d..2a8a7aacd7 100644 --- a/source3/locking/posix.c +++ b/source3/locking/posix.c @@ -25,7 +25,6 @@ #include "includes.h" extern int DEBUGLEVEL; -extern int global_smbpid; /* * The POSIX locking database handle. -- cgit