diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2008-04-24 16:59:30 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-04-25 13:00:11 -0400 |
commit | e36cd4a2873c398ba188f16e4087cce7f00a1506 (patch) | |
tree | 60dcaba46a18d9f60e6a0514542a35a81f059cee /fs/nfsd/nfs4xdr.c | |
parent | c272cca625ab507e7cc23708ee5c64d2f384708f (diff) |
nfsd: don't allow setting ctime over v4
Presumably this is left over from earlier drafts of v4, which listed
TIME_METADATA as writeable. It's read-only in rfc 3530, and shouldn't
be modifiable anyway.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd/nfs4xdr.c')
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index 1ba7ad981935..c513bbdf2d36 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -376,20 +376,6 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, struct iattr *ia | |||
376 | goto xdr_error; | 376 | goto xdr_error; |
377 | } | 377 | } |
378 | } | 378 | } |
379 | if (bmval[1] & FATTR4_WORD1_TIME_METADATA) { | ||
380 | /* We require the high 32 bits of 'seconds' to be 0, and we ignore | ||
381 | all 32 bits of 'nseconds'. */ | ||
382 | READ_BUF(12); | ||
383 | len += 12; | ||
384 | READ32(dummy32); | ||
385 | if (dummy32) | ||
386 | return nfserr_inval; | ||
387 | READ32(iattr->ia_ctime.tv_sec); | ||
388 | READ32(iattr->ia_ctime.tv_nsec); | ||
389 | if (iattr->ia_ctime.tv_nsec >= (u32)1000000000) | ||
390 | return nfserr_inval; | ||
391 | iattr->ia_valid |= ATTR_CTIME; | ||
392 | } | ||
393 | if (bmval[1] & FATTR4_WORD1_TIME_MODIFY_SET) { | 379 | if (bmval[1] & FATTR4_WORD1_TIME_MODIFY_SET) { |
394 | READ_BUF(4); | 380 | READ_BUF(4); |
395 | len += 4; | 381 | len += 4; |