[cifs-protocol] SMB2 Request Response Ordering Guarantees.

Ira Cooper samba at ira.wakeful.net
Tue Aug 30 09:59:42 MDT 2011


I have some questions as to what the guarantees in the protocol are as far
as "ordering" of responses and when those responses occurred.

MS-SMB2: 3.1.5 is clear in that it says there is no processing or sequencing
rules.  (If this is the correct part of the document to draw such semantics
from.)

But it does not tell an implementer about the meaning of the responses.  Do
they have to be "temporally" correct.  IE: If the server replies Q happened,
all other responses there after should have Q taken into account.  A
paraphrased set of examples is included below, please read them for their
intent not for full correctness.

Example #1:
Client: Compound: (CREATE REQUEST for directory X; QUERY_DIRECTORY REQUEST
in directory X; QUERY_DIRECTORY request in directory X)
Client :CREATE REQUEST for file Y in directory X (No permission for delete
given)
Server: CREATE REQUEST response for file Y (File is created.)
Server: Compound (CREATE REQUEST response; QUERY_DIRECTORY REQUEST response
(Does not contain file Y); QUERY_DIRECTORY response no more files)

And how does that answer compare to:

Example #2:
Client :CREATE REQUEST for file Y in directory X (No permission for delete
given)
Server: CREATE REQUEST response for file Y (File is created.)
Client: Compound: (CREATE REQUEST for directory X; QUERY_DIRECTORY REQUEST
in directory X; QUERY_DIRECTORY request in directory X)
Server: Compound (CREATE REQUEST response; QUERY_DIRECTORY REQUEST response
(Does not contain file Y); QUERY_DIRECTORY

Is the server correct to reply without Y, in any of the above cases?  Why or
why not?  If the server is allowed to reply without Y in example #2, in a
"strictly" conforming implementation, could QUERY_DIRECTORY always return
the same list of entries that is cached, regardless of what the object store
has in it.  Why or why not?

Thanks,

-Ira
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/cifs-protocol/attachments/20110830/39c77b64/attachment-0001.html>


More information about the cifs-protocol mailing list