NFS4: on a O_EXCL OPEN make sure SETATTR sets the fields holding the verifier
authorJeff Layton <jlayton@redhat.com>
Tue, 5 Jun 2007 18:49:03 +0000 (14:49 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 11 Jul 2007 03:40:25 +0000 (23:40 -0400)
commitaa53ed541a1fec78a78d02afc8b042d040cc080d
tree04d4c66b643e4ec9ec1277f3ad642b18f3f94990
parentfc6ae3cf482c385a6fe87ba119d399bb85aa670b
NFS4: on a O_EXCL OPEN make sure SETATTR sets the fields holding the verifier

The Linux NFS4 client simply skips over the bitmask in an O_EXCL open
call and so it doesn't bother to reset any fields that may be holding
the verifier. This patch has us save the first two words of the bitmask
(which is all the current client has #defines for). The client then
later checks this bitmask and turns on the appropriate flags in the
sattr->ia_verify field for the following SETATTR call.

This patch only currently checks to see if the server used the atime
and mtime slots for the verifier (which is what the Linux server uses
for this). I'm not sure of what other fields the server could
reasonably use, but adding checks for others should be trivial.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4xdr.c
include/linux/nfs4.h
include/linux/nfs_xdr.h