Hi Ralph:
Thanks for contacting Microsoft. I have created a case to track this issue. A 
member of the open specifications team will be in touch soon.

Regards,
Obaid Farooqi
Escalation Engineer | Microsoft

-----Original Message-----
From: Ralph Boehme <[email protected]> 
Sent: Thursday, February 27, 2025 8:42 AM
To: Interoperability Documentation Help <[email protected]>
Cc: [email protected]
Subject: [EXTERNAL] MS-SMB2: write-through and unbuffered IO

Hello dochelp,

I'm doing some research on the expected server behaviour wrt to write-through 
and unbuffered IO, driven by working on the Persistent Handles implementation 
in Samba.

As per MS-SMB2 the protocol offers knobs to request these

1) at open time, and
2) per write

For 1) there are

FILE_WRITE_THROUGH
FILE_NO_INTERMEDIATE_BUFFERING

and for 2) there are

SMB2_WRITEFLAG_WRITE_THROUGH
SMB2_WRITEFLAG_WRITE_UNBUFFERED

The protocol documentation (also when read together with MS-FSA and
MS-CIFS) seems to be a bit vague wrt to dependencies between per-open behaviour 
and per-write behaviour.

---8<---
3.3.5.13 "Receiving an SMB2 WRITE Request"

If Connection.Dialect is "3.0.2" or "3.1.1", SMB2_WRITEFLAG_WRITE_THROUGH is 
set in the Flags field of the request, SMB2_WRITEFLAG_WRITE_UNBUFFERED is not 
set in the Flags field of the request, and Open.CreateOptions doesn't include 
the FILE_NO_INTERMEDIATE_BUFFERING bit, the server MUST fail the request with 
STATUS_INVALID_PARAMETER.

If Connection.Dialect is "2.1" or "3.0", SMB2_WRITEFLAG_WRITE_THROUGH is set in 
the Flags field of the request, and Open.CreateOptions doesn't include the 
FILE_NO_INTERMEDIATE_BUFFERING bit, the server MUST fail the request with 
STATUS_INVALID_PARAMETER.
---8<---

If my reading of the above paragraph is correct, it is not possible to to 
request per-write write-through IO without requesting unbuffered IO on the 
handle.

Is this true? Am I missing something? Can you please clarify?

Thanks!
-slow
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to