diff options
author | Jeremy Allison <jra@samba.org> | 2002-03-13 20:49:57 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-03-13 20:49:57 +0000 |
commit | 62b80d5c65ae8cf35347ee5c3d21ce1702c6449e (patch) | |
tree | 9feedc6dcbbd650f6a3ef0f6c5504f0310d633d6 /source | |
parent | 8aa9860ea2ea7f5aed4b6aa12794fffdfa81b0d0 (diff) | |
download | samba-62b80d5c65ae8cf35347ee5c3d21ce1702c6449e.tar.gz samba-62b80d5c65ae8cf35347ee5c3d21ce1702c6449e.tar.xz samba-62b80d5c65ae8cf35347ee5c3d21ce1702c6449e.zip |
Ensure we attempt to lock at least once. Only sleep if time param set.
Jeremy.
Diffstat (limited to 'source')
-rw-r--r-- | source/locking/locking.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/locking/locking.c b/source/locking/locking.c index 8f3e4a278e1..1090b0fcbf5 100644 --- a/source/locking/locking.c +++ b/source/locking/locking.c @@ -155,12 +155,16 @@ NTSTATUS do_lock_spin(files_struct *fsp,connection_struct *conn, uint16 lock_pid int sleeptime = lp_lock_sleep_time(); NTSTATUS status; + if (maxj <= 0) + maxj = 1; + for (j = 0; j < maxj; j++) { status = do_lock(fsp, conn, lock_pid, count, offset, lock_type); if (!NT_STATUS_EQUAL(status, NT_STATUS_LOCK_NOT_GRANTED) && !NT_STATUS_EQUAL(status, NT_STATUS_FILE_LOCK_CONFLICT)) break; - usleep(sleeptime); + if (sleeptime) + usleep(sleeptime); } return status; } |