summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/local.h3
-rw-r--r--source3/smbd/reply.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/source3/include/local.h b/source3/include/local.h
index fb93197636..6d32f4fe6e 100644
--- a/source3/include/local.h
+++ b/source3/include/local.h
@@ -247,4 +247,7 @@
/* Default hash size for the winbindd cache. */
#define WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE 5000
+/* Windows minimum lock resolution timeout in ms */
+#define WINDOWS_MINIMUM_LOCK_TIMEOUT_MS 200
+
#endif
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index bb79918675..f1ac098e7d 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -5383,8 +5383,8 @@ int reply_lockingX(connection_struct *conn, char *inbuf, char *outbuf,
if (br_lck && blocking_lock && ERROR_WAS_LOCK_DENIED(status)) {
/* Windows internal resolution for blocking locks seems
to be about 200ms... Don't wait for less than that. JRA. */
- if (lock_timeout != -1 && lock_timeout < 200) {
- lock_timeout = 200;
+ if (lock_timeout != -1 && lock_timeout < WINDOWS_MINIMUM_LOCK_TIMEOUT_MS) {
+ lock_timeout = WINDOWS_MINIMUM_LOCK_TIMEOUT_MS;
}
defer_lock = True;
}
@@ -5397,7 +5397,7 @@ int reply_lockingX(connection_struct *conn, char *inbuf, char *outbuf,
if (br_lck && lp_blocking_locks(SNUM(conn)) && !blocking_lock &&
NT_STATUS_EQUAL((status), NT_STATUS_FILE_LOCK_CONFLICT)) {
defer_lock = True;
- lock_timeout = 200;
+ lock_timeout = WINDOWS_MINIMUM_LOCK_TIMEOUT_MS;
}
if (br_lck && defer_lock) {