aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorBenny Halevy <bhalevy@panasas.com>2008-07-02 04:14:01 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2008-07-02 15:58:21 -0400
commit3c375c6f3a809d0d999d6dc933634f0b97ed7ae9 (patch)
treeff70067da6e470d7bb95bc47c676ead27bf921aa /fs
parent347e0ad9c91b5bd7506d61f236048cc72b7fc151 (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.c9
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
994static __be32
995nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
996{
997 return nfserr_opnotsupp;
998}
999
994typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); 1000typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
995 1001
996static nfsd4_dec nfsd4_dec_ops[] = { 1002static 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,