NFSv4: do exact check about attribute specified
authorYu Zhiguo <yuzg@cn.fujitsu.com>
Sat, 16 May 2009 08:22:31 +0000 (16:22 +0800)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Mon, 1 Jun 2009 22:01:54 +0000 (18:01 -0400)
commit3c8e03166ae234d16e7871f8009638e0946d303c
tree810556f219d4a98fa1ba71b43ec9c34847b57d93
parent1dbd0d53f394cd9a86fc801dd68fdbcbcdb45718
NFSv4: do exact check about attribute specified

Server should return NFS4ERR_ATTRNOTSUPP if an attribute specified is
not supported in current environment.
Operations CREATE, NVERIFY, OPEN, SETATTR and VERIFY should do this check.

This bug is found when do newpynfs tests. The names of the tests that failed
are following:
  CR12 NVF7a NVF7b NVF7c NVF7d NVF7f NVF7r NVF7s
  OPEN15 VF7a VF7b VF7c VF7d VF7f VF7r VF7s

Add function do_check_fattr() to do exact check:
1, Check attribute specified is supported by the NFSv4 server or not.
2, Check FATTR4_WORD0_ACL & FATTR4_WORD0_FS_LOCATIONS are supported
   in current environment or not.
3, Check attribute specified is writable or not.

step 1 and 3 are done in function nfsd4_decode_fattr() but removed
to this function now.

Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c