aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
authorAnna Schumaker <Anna.Schumaker@netapp.com>2014-09-26 13:58:26 -0400
committerJ. Bruce Fields <bfields@redhat.com>2014-09-29 14:35:19 -0400
commit87a15a8090c0e5284c0e53528d9defa5d9237866 (patch)
tree57173c70bc32b13c2affef2091bf968fa6fcbdf1 /fs/nfsd
parent7e5be28827bf5c1989218c4b7bf64fdbc3d679b5 (diff)
NFSD: Add generic v4.2 infrastructure
It's cleaner to introduce everything at once and have the server reply with "not supported" than it would be to introduce extra operations when implementing a specific one in the middle of the list. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/nfs4xdr.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index e771a1a7c6f1..0311baebd7d3 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1586,6 +1586,20 @@ static nfsd4_dec nfsd4_dec_ops[] = {
1586 [OP_WANT_DELEGATION] = (nfsd4_dec)nfsd4_decode_notsupp, 1586 [OP_WANT_DELEGATION] = (nfsd4_dec)nfsd4_decode_notsupp,
1587 [OP_DESTROY_CLIENTID] = (nfsd4_dec)nfsd4_decode_destroy_clientid, 1587 [OP_DESTROY_CLIENTID] = (nfsd4_dec)nfsd4_decode_destroy_clientid,
1588 [OP_RECLAIM_COMPLETE] = (nfsd4_dec)nfsd4_decode_reclaim_complete, 1588 [OP_RECLAIM_COMPLETE] = (nfsd4_dec)nfsd4_decode_reclaim_complete,
1589
1590 /* new operations for NFSv4.2 */
1591 [OP_ALLOCATE] = (nfsd4_dec)nfsd4_decode_notsupp,
1592 [OP_COPY] = (nfsd4_dec)nfsd4_decode_notsupp,
1593 [OP_COPY_NOTIFY] = (nfsd4_dec)nfsd4_decode_notsupp,
1594 [OP_DEALLOCATE] = (nfsd4_dec)nfsd4_decode_notsupp,
1595 [OP_IO_ADVISE] = (nfsd4_dec)nfsd4_decode_notsupp,
1596 [OP_LAYOUTERROR] = (nfsd4_dec)nfsd4_decode_notsupp,
1597 [OP_LAYOUTSTATS] = (nfsd4_dec)nfsd4_decode_notsupp,
1598 [OP_OFFLOAD_CANCEL] = (nfsd4_dec)nfsd4_decode_notsupp,
1599 [OP_OFFLOAD_STATUS] = (nfsd4_dec)nfsd4_decode_notsupp,
1600 [OP_READ_PLUS] = (nfsd4_dec)nfsd4_decode_notsupp,
1601 [OP_SEEK] = (nfsd4_dec)nfsd4_decode_notsupp,
1602 [OP_WRITE_SAME] = (nfsd4_dec)nfsd4_decode_notsupp,
1589}; 1603};
1590 1604
1591static inline bool 1605static inline bool
@@ -3823,6 +3837,20 @@ static nfsd4_enc nfsd4_enc_ops[] = {
3823 [OP_WANT_DELEGATION] = (nfsd4_enc)nfsd4_encode_noop, 3837 [OP_WANT_DELEGATION] = (nfsd4_enc)nfsd4_encode_noop,
3824 [OP_DESTROY_CLIENTID] = (nfsd4_enc)nfsd4_encode_noop, 3838 [OP_DESTROY_CLIENTID] = (nfsd4_enc)nfsd4_encode_noop,
3825 [OP_RECLAIM_COMPLETE] = (nfsd4_enc)nfsd4_encode_noop, 3839 [OP_RECLAIM_COMPLETE] = (nfsd4_enc)nfsd4_encode_noop,
3840
3841 /* NFSv4.2 operations */
3842 [OP_ALLOCATE] = (nfsd4_enc)nfsd4_encode_noop,
3843 [OP_COPY] = (nfsd4_enc)nfsd4_encode_noop,
3844 [OP_COPY_NOTIFY] = (nfsd4_enc)nfsd4_encode_noop,
3845 [OP_DEALLOCATE] = (nfsd4_enc)nfsd4_encode_noop,
3846 [OP_IO_ADVISE] = (nfsd4_enc)nfsd4_encode_noop,
3847 [OP_LAYOUTERROR] = (nfsd4_enc)nfsd4_encode_noop,
3848 [OP_LAYOUTSTATS] = (nfsd4_enc)nfsd4_encode_noop,
3849 [OP_OFFLOAD_CANCEL] = (nfsd4_enc)nfsd4_encode_noop,
3850 [OP_OFFLOAD_STATUS] = (nfsd4_enc)nfsd4_encode_noop,
3851 [OP_READ_PLUS] = (nfsd4_enc)nfsd4_encode_noop,
3852 [OP_SEEK] = (nfsd4_enc)nfsd4_encode_noop,
3853 [OP_WRITE_SAME] = (nfsd4_enc)nfsd4_encode_noop,
3826}; 3854};
3827 3855
3828/* 3856/*