RFC 5661, "Network File System (NFS) Version 4 Minor Version 1 Protocol", January 2010Source of RFC: nfsv4 (tsv)
Errata ID: 3901
Reported By: Trond Myklebust
Date Reported: 2014-02-25
Edited by: Martin Stiemerling
Date Edited: 2015-12-16
Section 18.43.3 says:
The logr_return_on_close result field is a directive to return the layout before closing the file. When the metadata server sets this return value to TRUE, it MUST be prepared to recall the layout in the case in which the client fails to return the layout before close. For the metadata server that knows a layout must be returned before a close of the file, this return value can be used to communicate the desired behavior to the client and thus remove one extra step from the client's and metadata server's interaction.
It should say:
The logr_return_on_close result field is a directive to return or forget the layout when the client returns all open/delegation state for that file. Once a LAYOUTGET operation returns with logr_return_on_close set to TRUE for a given file, then all subsequent LAYOUTGET requests by that client for the same file and layout type, MUST reply with logr_return_on_close set to TRUE until the client returns all its open state for that file using CLOSE and DELEGRETURN. Note that return_on_close also applies retroactively to all layout segments retrieved by the client for that file and layout type. After the client has closed all open stateids and returned the delegation stateids for a file for which logr_return_on_close was set to TRUE, the server MUST invalidate all layout segments that were issued to the client for that file. The client MUST NOT attempt to use that layout or the layout stateid. If the server needs to revoke all open stateids and delegation stateids owned by the client for a file for which logr_return_on_close was set to TRUE, then it MUST also revoke all layout segments of type loga_layout_type that were issued for that file to that client, and take action to fence the access to the DSes.
This is intended as a replacement for the errata with id 3226, which is incomplete in that it does not discuss how return-on-close is supposed to work with delegations or with layout revoking.
Please get an agreement in the WG and submit an up to date errata, as this text part seems to be under discussion.
2016-06-17: RFC Editor moved from Rejected to Reported per request from AD (Spencer Dawkins).