RFC Errata
RFC 5661, "Network File System (NFS) Version 4 Minor Version 1 Protocol", January 2010
Note: This RFC has been obsoleted by RFC 8881
Note: This RFC has been updated by RFC 8178, RFC 8434
Source of RFC: nfsv4 (wit)
Errata ID: 3067
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT
Reported By: David Black
Date Reported: 2011-12-27
Held for Document Update by: Martin Stiemerling
Section 18.42.3 says:
The LAYOUTCOMMIT operation commits changes in the layout represented by the current filehandle, client ID (derived from the session ID in the preceding SEQUENCE operation), byte-range, and stateid. Since layouts are sub-dividable, a smaller portion of a layout, retrieved via LAYOUTGET, can be committed. The byte-range being committed is specified through the byte-range (loca_offset and loca_length). This byte-range MUST overlap with one or more existing layouts previously granted via LAYOUTGET (Section 18.43), each with an iomode of LAYOUTIOMODE4_RW. In the case where the iomode of any held layout segment is not LAYOUTIOMODE4_RW, the server should return the error NFS4ERR_BAD_IOMODE. For the case where the client does not hold matching layout segment(s) for the defined byte-range, the server should return the error NFS4ERR_BAD_LAYOUT.
It should say:
The LAYOUTCOMMIT operation commits changes in the layout represented by the current filehandle, client ID (derived from the session ID in the preceding SEQUENCE operation), and stateid. As a layout-independent operation, LAYOUTCOMMIT commits the entire layout; layout type-specific data (loca_layoutupdate) may specify a smaller scope of data that is to be committed (e.g., for the block layout, see RFC 5663 [41]). The loca_offset and loca_length arguments have been deprecated. The client SHOULD set both loca_offset and loca_length to 0. The server MUST ignore the loca_offset and loca_length arguments. The client MUST hold one or more existing layouts previously granted via LAYOUTGET (Section 18.43), with an iomode of LAYOUTIOMODE4_RW. If layout type-specific data (loca_layoutupdate) restricts the scope of the LAYOUTCOMMIT to less than the entire layout, the client MUST hold one or more existing layouts with an iomode of LAYOUTIOMODE4_RW fully covering the committed byte ranges. In the case where no previously granted layout has an iomode of LAYOUTIOMODE4_RW, the server should return the error NFS4ERR_BAD_IOMODE. For the case where the client does not hold any previously granted layout, the server should return the error NFS4ERR_BAD_LAYOUT.
Notes:
Errata 4 of 5 to deprecate loca_offset and loca_length arguments to LAYOUTCOMMIT.