diff options
author | Andrew Tridgell <tridge@samba.org> | 2001-09-06 01:19:35 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2001-09-06 01:19:35 +0000 |
commit | 9ef7a6c7865c14480139188c30744914c5b7af43 (patch) | |
tree | 61be92b85a5b9eb70fcfe426c5c6e3ddaaae4ce1 /source3/locking/brlock.c | |
parent | 851e60c3825c6d3398973b20374feb1806a22238 (diff) | |
download | samba-9ef7a6c7865c14480139188c30744914c5b7af43.tar.gz samba-9ef7a6c7865c14480139188c30744914c5b7af43.tar.bz2 samba-9ef7a6c7865c14480139188c30744914c5b7af43.zip |
use NTSTATUS not BOOL in do_lock()
(This used to be commit b1b2a5fa5d084dad8ae47777419ab75db1e51eff)
Diffstat (limited to 'source3/locking/brlock.c')
-rw-r--r-- | source3/locking/brlock.c | 24 |
1 files changed, 15 insertions, 9 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; i<count; i++) { if (brl_conflict(&locks[i], &lock)) { + status = NT_STATUS_LOCK_NOT_GRANTED; goto fail; } #if ZERO_ZERO @@ -329,8 +331,12 @@ BOOL brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, /* no conflicts - add it to the list of locks */ tp = Realloc(dbuf.dptr, dbuf.dsize + sizeof(*locks)); - if (!tp) goto fail; - else dbuf.dptr = tp; + if (!tp) { + status = NT_STATUS_NO_MEMORY; + goto fail; + } else { + dbuf.dptr = tp; + } memcpy(dbuf.dptr + dbuf.dsize, &lock, sizeof(lock)); dbuf.dsize += sizeof(lock); @@ -343,12 +349,12 @@ BOOL brl_lock(SMB_DEV_T dev, SMB_INO_T ino, int fnum, free(dbuf.dptr); tdb_chainunlock(tdb, kbuf); - return True; + return NT_STATUS_OK; fail: if (dbuf.dptr) free(dbuf.dptr); tdb_chainunlock(tdb, kbuf); - return False; + return status; } /**************************************************************************** |