windows-smb-lock-timeouts-
20080228
LICENSE MIT
Attempts to open files which are already write-locked by another
client took forever to return a lock not granted error. This
was because cm_Analyze() would retry the lock request for up to
the RDRtimeout in response to the EAGAIN error. The problem
was that cm_IntSetLock() was not setting the CM_REQ_NORETRY flag.
While examining this issue, discovered two other things:
(1) the infinite wait logic on lock request processing was broken
(2) the cancel outstanding lock request logic wasn't implemented
(3) cm_Analyze() would put the thread to sleep even when retries
were not permitted.
Also removed a number of compile time warnings.