Subject: why no change_info4 in WRITE4resok?

From: "Kendrick M. Smith" <[email-masked]>
Date: Fri, 2 Nov 2001 21:45:35 -0500 (EST)

It would be very helpful if the WRITE response included a change_info4
structure, so that the client could maintain cache consistency across
a WRITE.  As things stand, I don't see how the client can do this without
a potential race condition against other clients.  The best the client
can do is to emit a GETATTR (for the FATTR4_CHANGE attribute) before and
after the WRITE, and decide that if the first FATTR4_CHANGE matches its
cache, then the cache is valid and the cached changeid should be replaced
with the second FATTR4_CHANGE.  This is prone to a race condition since
the sequence GETATTR WRITE GETATTR is not guaranteed atomic.

Indeed, the nfsv3 write response includes a wcc_data structure, which
seems to be functionally equivalent to the nfsv4 change_info4.  Is there
some reason I'm missing why this was removed in v4?

Kendrick