diff options
-rw-r--r-- | fs/nfsd/nfs4proc.c | 22 | ||||
-rw-r--r-- | fs/nfsd/nfs4state.c | 32 | ||||
-rw-r--r-- | include/linux/nfsd/xdr4.h | 12 |
3 files changed, 66 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index ded469ff08b3..f7be7fabe62c 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c | |||
@@ -1101,6 +1101,28 @@ static struct nfsd4_operation nfsd4_ops[] = { | |||
1101 | .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS, | 1101 | .op_flags = ALLOWED_WITHOUT_FH | ALLOWED_ON_ABSENT_FS, |
1102 | .op_name = "OP_RELEASE_LOCKOWNER", | 1102 | .op_name = "OP_RELEASE_LOCKOWNER", |
1103 | }, | 1103 | }, |
1104 | |||
1105 | /* NFSv4.1 operations */ | ||
1106 | [OP_EXCHANGE_ID] = { | ||
1107 | .op_func = (nfsd4op_func)nfsd4_exchange_id, | ||
1108 | .op_flags = ALLOWED_WITHOUT_FH, | ||
1109 | .op_name = "OP_EXCHANGE_ID", | ||
1110 | }, | ||
1111 | [OP_CREATE_SESSION] = { | ||
1112 | .op_func = (nfsd4op_func)nfsd4_create_session, | ||
1113 | .op_flags = ALLOWED_WITHOUT_FH, | ||
1114 | .op_name = "OP_CREATE_SESSION", | ||
1115 | }, | ||
1116 | [OP_DESTROY_SESSION] = { | ||
1117 | .op_func = (nfsd4op_func)nfsd4_destroy_session, | ||
1118 | .op_flags = ALLOWED_WITHOUT_FH, | ||
1119 | .op_name = "OP_DESTROY_SESSION", | ||
1120 | }, | ||
1121 | [OP_SEQUENCE] = { | ||
1122 | .op_func = (nfsd4op_func)nfsd4_sequence, | ||
1123 | .op_flags = ALLOWED_WITHOUT_FH, | ||
1124 | .op_name = "OP_SEQUENCE", | ||
1125 | }, | ||
1104 | }; | 1126 | }; |
1105 | 1127 | ||
1106 | static const char *nfsd4_op_name(unsigned opnum) | 1128 | static const char *nfsd4_op_name(unsigned opnum) |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index fc20e1f38d75..cfc01f415d15 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -833,6 +833,38 @@ out_err: | |||
833 | } | 833 | } |
834 | 834 | ||
835 | __be32 | 835 | __be32 |
836 | nfsd4_exchange_id(struct svc_rqst *rqstp, | ||
837 | struct nfsd4_compound_state *cstate, | ||
838 | struct nfsd4_exchange_id *exid) | ||
839 | { | ||
840 | return -1; /* stub */ | ||
841 | } | ||
842 | |||
843 | __be32 | ||
844 | nfsd4_create_session(struct svc_rqst *rqstp, | ||
845 | struct nfsd4_compound_state *cstate, | ||
846 | struct nfsd4_create_session *cr_ses) | ||
847 | { | ||
848 | return -1; /* stub */ | ||
849 | } | ||
850 | |||
851 | __be32 | ||
852 | nfsd4_destroy_session(struct svc_rqst *r, | ||
853 | struct nfsd4_compound_state *cstate, | ||
854 | struct nfsd4_destroy_session *sessionid) | ||
855 | { | ||
856 | return -1; /* stub */ | ||
857 | } | ||
858 | |||
859 | __be32 | ||
860 | nfsd4_sequence(struct svc_rqst *r, | ||
861 | struct nfsd4_compound_state *cstate, | ||
862 | struct nfsd4_sequence *seq) | ||
863 | { | ||
864 | return -1; /* stub */ | ||
865 | } | ||
866 | |||
867 | __be32 | ||
836 | nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | 868 | nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, |
837 | struct nfsd4_setclientid *setclid) | 869 | struct nfsd4_setclientid *setclid) |
838 | { | 870 | { |
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h index 28af925c2a3d..294940c58094 100644 --- a/include/linux/nfsd/xdr4.h +++ b/include/linux/nfsd/xdr4.h | |||
@@ -471,6 +471,18 @@ extern __be32 nfsd4_setclientid(struct svc_rqst *rqstp, | |||
471 | extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp, | 471 | extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp, |
472 | struct nfsd4_compound_state *, | 472 | struct nfsd4_compound_state *, |
473 | struct nfsd4_setclientid_confirm *setclientid_confirm); | 473 | struct nfsd4_setclientid_confirm *setclientid_confirm); |
474 | extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp, | ||
475 | struct nfsd4_compound_state *, | ||
476 | struct nfsd4_exchange_id *); | ||
477 | extern __be32 nfsd4_create_session(struct svc_rqst *, | ||
478 | struct nfsd4_compound_state *, | ||
479 | struct nfsd4_create_session *); | ||
480 | extern __be32 nfsd4_sequence(struct svc_rqst *, | ||
481 | struct nfsd4_compound_state *, | ||
482 | struct nfsd4_sequence *); | ||
483 | extern __be32 nfsd4_destroy_session(struct svc_rqst *, | ||
484 | struct nfsd4_compound_state *, | ||
485 | struct nfsd4_destroy_session *); | ||
474 | extern __be32 nfsd4_process_open1(struct nfsd4_open *open); | 486 | extern __be32 nfsd4_process_open1(struct nfsd4_open *open); |
475 | extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp, | 487 | extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp, |
476 | struct svc_fh *current_fh, struct nfsd4_open *open); | 488 | struct svc_fh *current_fh, struct nfsd4_open *open); |