On 1/12/25 11:06 PM, Takeshi Nishimura wrote:
On Sat, Jan 11, 2025 at 10:17 PM Rick Macklem <rick.macklem@xxxxxxxxx> wrote:
On Sat, Jan 11, 2025 at 12:08 PM Takeshi Nishimura
<takeshi.nishimura.linux@xxxxxxxxx> wrote:
Dear list,
We tried to use FATTR4_WORD2_CHANGE_ATTR_TYPE with Linux 6.12 nfsd,
but the server does not set that attribute, while it is mandatory for
NFSv4.2.
My understand is that nothing is mandatory in NFSv4.2. Everything is considered
optional extensions. I doubt any extant 4.2 server supports all of the optional
extensions in NFSv4.2.
That can't be true, or would be a bug in the NFSv4.2 spec then.
"Everything optional" means feature support gets fragmented, and
interoperability will cease to exist.
Hello -
Interoperability in this case means that the client is able to determine
whether the server implements a new feature, and then not use it if the
server hasn't implemented it.
There are protocol mechanisms in place to ensure that clients can
recognize that the server doesn't support any feature introduced by
NFSv4.2, so it is entirely safe to make them all optional.
As RFC 7862 points out, when a server lacks support for
FATTR4_CHANGE_ATTR_TYPE, the client is supposed to behave as if the
server returned TYPE_IS_UNDEFINED.
--
Chuck Lever