From 9ef7a6c7865c14480139188c30744914c5b7af43 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 6 Sep 2001 01:19:35 +0000 Subject: use NTSTATUS not BOOL in do_lock() (This used to be commit b1b2a5fa5d084dad8ae47777419ab75db1e51eff) --- source3/locking/brlock.c | 24 +++++++++++++++--------- source3/locking/locking.c | 21 +++++++++------------ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index e21effe6eb..f4c41d0349 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -278,15 +278,16 @@ static int lock_compare(struct lock_struct *lck1, Lock a range of bytes. ****************************************************************************/ -BOOL brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, - uint16 smbpid, pid_t pid, uint16 tid, - br_off start, br_off size, - enum brl_type lock_type) +NTSTATUS brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, + uint16 smbpid, pid_t pid, uint16 tid, + br_off start, br_off size, + enum brl_type lock_type) { TDB_DATA kbuf, dbuf; int count, i; struct lock_struct lock, *locks; char *tp; + NTSTATUS status = NT_STATUS_OK; kbuf = locking_key(dev,ino); @@ -295,7 +296,7 @@ BOOL brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, #if !ZERO_ZERO if (start == 0 && size == 0) { DEBUG(0,("client sent 0/0 lock - please report this\n")); - return False; + return NT_STATUS_INVALID_PARAMETER; } #endif @@ -316,6 +317,7 @@ BOOL brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, count = dbuf.dsize / sizeof(*locks); for (i=0; ifsp_name )); if (OPEN_FSP(fsp) && fsp->can_lock && (fsp->conn == conn)) { - ok = brl_lock(fsp->dev, fsp->inode, fsp->fnum, - lock_pid, sys_getpid(), conn->cnum, - offset, count, - lock_type); + status = brl_lock(fsp->dev, fsp->inode, fsp->fnum, + lock_pid, sys_getpid(), conn->cnum, + offset, count, + lock_type); - if (ok && lp_posix_locking(SNUM(conn))) { + if (NT_STATUS_IS_OK(status) && lp_posix_locking(SNUM(conn))) { /* * Try and get a POSIX lock on this range. @@ -127,9 +127,8 @@ NTSTATUS do_lock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, * overlapping on a different fd. JRA. */ - ok = set_posix_lock(fsp, offset, count, lock_type); - - if (!ok) { + if (!set_posix_lock(fsp, offset, count, lock_type)) { + status = NT_STATUS_LOCK_NOT_GRANTED; /* * We failed to map - we must now remove the brl * lock entry. @@ -141,9 +140,7 @@ NTSTATUS do_lock(files_struct *fsp,connection_struct *conn, uint16 lock_pid, } } - if (!ok) return NT_STATUS_FILE_LOCK_CONFLICT; - - return NT_STATUS_OK; /* Got lock */ + return status; } /**************************************************************************** -- cgit