diff options
author | Benny Halevy <bhalevy@panasas.com> | 2008-07-02 04:14:01 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-07-02 15:58:21 -0400 |
commit | 3c375c6f3a809d0d999d6dc933634f0b97ed7ae9 (patch) | |
tree | ff70067da6e470d7bb95bc47c676ead27bf921aa /fs | |
parent | 347e0ad9c91b5bd7506d61f236048cc72b7fc151 (diff) |
nfsd: unsupported nfs4 ops should fail with nfserr_opnotsupp
nfserr_opnotsupp should be returned for unsupported nfs4 ops
rather than nfserr_op_illegal.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index de1fd9db26f0..653951c73e31 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -991,6 +991,12 @@ nfsd4_decode_noop(struct nfsd4_compoundargs *argp, void *p) | |||
991 | return nfs_ok; | 991 | return nfs_ok; |
992 | } | 992 | } |
993 | 993 | ||
994 | static __be32 | ||
995 | nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) | ||
996 | { | ||
997 | return nfserr_opnotsupp; | ||
998 | } | ||
999 | |||
994 | typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); | 1000 | typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); |
995 | 1001 | ||
996 | static nfsd4_dec nfsd4_dec_ops[] = { | 1002 | static nfsd4_dec nfsd4_dec_ops[] = { |
@@ -998,6 +1004,7 @@ static nfsd4_dec nfsd4_dec_ops[] = { | |||
998 | [OP_CLOSE] (nfsd4_dec)nfsd4_decode_close, | 1004 | [OP_CLOSE] (nfsd4_dec)nfsd4_decode_close, |
999 | [OP_COMMIT] (nfsd4_dec)nfsd4_decode_commit, | 1005 | [OP_COMMIT] (nfsd4_dec)nfsd4_decode_commit, |
1000 | [OP_CREATE] (nfsd4_dec)nfsd4_decode_create, | 1006 | [OP_CREATE] (nfsd4_dec)nfsd4_decode_create, |
1007 | [OP_DELEGPURGE] (nfsd4_dec)nfsd4_decode_notsupp, | ||
1001 | [OP_DELEGRETURN] (nfsd4_dec)nfsd4_decode_delegreturn, | 1008 | [OP_DELEGRETURN] (nfsd4_dec)nfsd4_decode_delegreturn, |
1002 | [OP_GETATTR] (nfsd4_dec)nfsd4_decode_getattr, | 1009 | [OP_GETATTR] (nfsd4_dec)nfsd4_decode_getattr, |
1003 | [OP_GETFH] (nfsd4_dec)nfsd4_decode_noop, | 1010 | [OP_GETFH] (nfsd4_dec)nfsd4_decode_noop, |
@@ -1009,9 +1016,11 @@ static nfsd4_dec nfsd4_dec_ops[] = { | |||
1009 | [OP_LOOKUPP] (nfsd4_dec)nfsd4_decode_noop, | 1016 | [OP_LOOKUPP] (nfsd4_dec)nfsd4_decode_noop, |
1010 | [OP_NVERIFY] (nfsd4_dec)nfsd4_decode_verify, | 1017 | [OP_NVERIFY] (nfsd4_dec)nfsd4_decode_verify, |
1011 | [OP_OPEN] (nfsd4_dec)nfsd4_decode_open, | 1018 | [OP_OPEN] (nfsd4_dec)nfsd4_decode_open, |
1019 | [OP_OPENATTR] (nfsd4_dec)nfsd4_decode_notsupp, | ||
1012 | [OP_OPEN_CONFIRM] (nfsd4_dec)nfsd4_decode_open_confirm, | 1020 | [OP_OPEN_CONFIRM] (nfsd4_dec)nfsd4_decode_open_confirm, |
1013 | [OP_OPEN_DOWNGRADE] (nfsd4_dec)nfsd4_decode_open_downgrade, | 1021 | [OP_OPEN_DOWNGRADE] (nfsd4_dec)nfsd4_decode_open_downgrade, |
1014 | [OP_PUTFH] (nfsd4_dec)nfsd4_decode_putfh, | 1022 | [OP_PUTFH] (nfsd4_dec)nfsd4_decode_putfh, |
1023 | [OP_PUTPUBFH] (nfsd4_dec)nfsd4_decode_notsupp, | ||
1015 | [OP_PUTROOTFH] (nfsd4_dec)nfsd4_decode_noop, | 1024 | [OP_PUTROOTFH] (nfsd4_dec)nfsd4_decode_noop, |
1016 | [OP_READ] (nfsd4_dec)nfsd4_decode_read, | 1025 | [OP_READ] (nfsd4_dec)nfsd4_decode_read, |
1017 | [OP_READDIR] (nfsd4_dec)nfsd4_decode_readdir, | 1026 | [OP_READDIR] (nfsd4_dec)nfsd4_decode_readdir, |