[cifs-protocol] Q.8 Durability without SMB2_GLOBAL_CAP_PERSISTENT_HANDLES- TrackingID#2311070040010257

Sreekanth Nadendla srenaden at microsoft.com
Thu Dec 14 20:25:20 UTC 2023


Hello Metze,  section "3.3.5.9.10 Handling the SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 Create Context" has following text

If the SMB2_DHANDLE_FLAG_PERSISTENT bit is set in the Flags field of the request, TreeConnect.Share.IsCA is TRUE, and Connection.ServerCapabilities includes SMB2_GLOBAL_CAP_PERSISTENT_HANDLES, the server MUST set Open.IsPersistent to TRUE

We clearly see that establishing durable handle as per sections 3.2.4.28/3.2.4.29 (from Question 8)  cannot disregard SMB2_GLOBAL_CAP_PERSISTENT_HANDLES. So it is necessary to have both SMB2_GLOBAL_CAP_PERSISTENT_HANDLES and SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY (which sets .IsCA property of network share)

If you think I misunderstood your question, please clarify.

= = = = == = = = == = = = == = = = == = = = == = = = == = = = == = = = == = = = == = = = == = = = =

3.2.4.28 Application Notifies Online Status of a Server

   This optional interface is applicable only for the SMB 3.x dialect family. The
   application provides the following:

   -  ServerName: The name of the server which became available.

   For each Open in the GlobalFileTable, where Open.Session.ChannelList is empty
   and the server name identified from Open.FileName matches ServerName, the client
   MUST re-establish the durable open as specified in section 3.2.4.4.


3.2.4.29 Application Requests Moving to a Server Instance

   This optional interface is applicable only for SMB 3.x dialect family. The
   application provides the following:

   -  ServerName: The name of the server.

   -  NewServerAddress: The IPv4 or IPv6 address of the server which the client
      is required to move to.

   For each Connection in the ConnectionTable where Connection.ServerName matches
   ServerName, the client MUST disconnect the connection by performing the steps as
   specified in section 3.2.7.1.

   For each Open in the GlobalFileTable, where Open.Session.ChannelList is empty
   and the server name identified from Open.FileName matches ServerName, the client
   MUST re-establish the durable open as specified in section 3.2.4.4, and by using
   NewServerAddress as the TransportIdentifier for the rules specified in section
   3.2.4.2.



Question 8:
The impact of SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY without SMB2_GLOBAL_CAP_PERSISTENT_HANDLES is a very important part of this.



Regards,

Sreekanth Nadendla

Microsoft Windows Open Specifications


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/cifs-protocol/attachments/20231214/7efec7ea/attachment.htm>


More information about the cifs-protocol mailing list