summaryrefslogtreecommitdiff
path: root/source/locking
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-03-13 20:49:57 +0000
committerJeremy Allison <jra@samba.org>2002-03-13 20:49:57 +0000
commit62b80d5c65ae8cf35347ee5c3d21ce1702c6449e (patch)
tree9feedc6dcbbd650f6a3ef0f6c5504f0310d633d6 /source/locking
parent8aa9860ea2ea7f5aed4b6aa12794fffdfa81b0d0 (diff)
downloadsamba-62b80d5c65ae8cf35347ee5c3d21ce1702c6449e.tar.gz
Ensure we attempt to lock at least once. Only sleep if time param set.
Jeremy.
Diffstat (limited to 'source/locking')
-rw-r--r--source/locking/locking.c6
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;
}