[cifs-protocol] SMBv1 multiple lock cancel behavior

Hongwei Sun hongweis at microsoft.com
Fri Dec 11 14:25:14 MST 2009

Proposed Response:


    After review, we have confirmed that if the CANCEL_LOCK in SMB_COM_LOCKING_ANDX  bit is set, Windows based servers cancel only the first request in the lock array, and returns SUCCESS for the request.   We will update the MS-CIFS document with this behavior.

    If you have any questions, please let us  know.


Hongwei  Sun - Sr. Support Escalation Engineer
DSC Protocol  Team, Microsoft
hongweis at microsoft.com<mailto:hongweis at microsoft.com>
Tel:  469-7757027 x 57027

Original E-mail:

From: Steven Danneman [mailto:steven.danneman at isilon.com]
Sent: Thursday, December 03, 2009 4:57 PM
To: Interoperability Documentation Help
Cc: cifs-protocol at samba.org; pfif at tridgell.net
Subject: SMBv1 multiple lock cancel behavior


I've got yet another byte range locking question.

MS-CIFS (v0.1) states in section

"If the Locks vector contains one and only one entry (NumberOfRequestedLocks ==
1) and TypeOfLock has the CANCEL_LOCK bit set, the client is requesting that the
server cancel a previously requested but unacknowledged lock."

My newly pushed smbtorture4 test, part of RAW-LOCK-ASYNC, shows a W2K8R2 server accepting a request with the CANCEL_LOCK bit set that contains multiple entries in the lock array, ie NumberOfRequestedLocks == 2.  The server then seems to cancel the first outstanding lock and return SUCCESS.

More information about the cifs-protocol mailing list