Commit eb69853d authored by Christoph Hellwig's avatar Christoph Hellwig

nfsd4: properly type op_func callbacks

Pass union nfsd4_op_u to the op_func callbacks instead of using unsafe
function pointer casts.

It also adds two missing structures to struct nfsd4_op.u to facilitate
this.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 1c122638
This diff is collapsed.
...@@ -2402,10 +2402,10 @@ static bool client_has_state(struct nfs4_client *clp) ...@@ -2402,10 +2402,10 @@ static bool client_has_state(struct nfs4_client *clp)
} }
__be32 __be32
nfsd4_exchange_id(struct svc_rqst *rqstp, nfsd4_exchange_id(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
struct nfsd4_exchange_id *exid)
{ {
struct nfsd4_exchange_id *exid = &u->exchange_id;
struct nfs4_client *conf, *new; struct nfs4_client *conf, *new;
struct nfs4_client *unconf = NULL; struct nfs4_client *unconf = NULL;
__be32 status; __be32 status;
...@@ -2698,9 +2698,9 @@ static __be32 nfsd4_check_cb_sec(struct nfsd4_cb_sec *cbs) ...@@ -2698,9 +2698,9 @@ static __be32 nfsd4_check_cb_sec(struct nfsd4_cb_sec *cbs)
__be32 __be32
nfsd4_create_session(struct svc_rqst *rqstp, nfsd4_create_session(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
struct nfsd4_create_session *cr_ses)
{ {
struct nfsd4_create_session *cr_ses = &u->create_session;
struct sockaddr *sa = svc_addr(rqstp); struct sockaddr *sa = svc_addr(rqstp);
struct nfs4_client *conf, *unconf; struct nfs4_client *conf, *unconf;
struct nfs4_client *old = NULL; struct nfs4_client *old = NULL;
...@@ -2824,8 +2824,11 @@ static __be32 nfsd4_map_bcts_dir(u32 *dir) ...@@ -2824,8 +2824,11 @@ static __be32 nfsd4_map_bcts_dir(u32 *dir)
return nfserr_inval; return nfserr_inval;
} }
__be32 nfsd4_backchannel_ctl(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_backchannel_ctl *bc) __be32 nfsd4_backchannel_ctl(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate,
union nfsd4_op_u *u)
{ {
struct nfsd4_backchannel_ctl *bc = &u->backchannel_ctl;
struct nfsd4_session *session = cstate->session; struct nfsd4_session *session = cstate->session;
struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
__be32 status; __be32 status;
...@@ -2845,8 +2848,9 @@ __be32 nfsd4_backchannel_ctl(struct svc_rqst *rqstp, struct nfsd4_compound_state ...@@ -2845,8 +2848,9 @@ __be32 nfsd4_backchannel_ctl(struct svc_rqst *rqstp, struct nfsd4_compound_state
__be32 nfsd4_bind_conn_to_session(struct svc_rqst *rqstp, __be32 nfsd4_bind_conn_to_session(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate,
struct nfsd4_bind_conn_to_session *bcts) union nfsd4_op_u *u)
{ {
struct nfsd4_bind_conn_to_session *bcts = &u->bind_conn_to_session;
__be32 status; __be32 status;
struct nfsd4_conn *conn; struct nfsd4_conn *conn;
struct nfsd4_session *session; struct nfsd4_session *session;
...@@ -2886,10 +2890,10 @@ static bool nfsd4_compound_in_session(struct nfsd4_session *session, struct nfs4 ...@@ -2886,10 +2890,10 @@ static bool nfsd4_compound_in_session(struct nfsd4_session *session, struct nfs4
} }
__be32 __be32
nfsd4_destroy_session(struct svc_rqst *r, nfsd4_destroy_session(struct svc_rqst *r, struct nfsd4_compound_state *cstate,
struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
struct nfsd4_destroy_session *sessionid)
{ {
struct nfsd4_destroy_session *sessionid = &u->destroy_session;
struct nfsd4_session *ses; struct nfsd4_session *ses;
__be32 status; __be32 status;
int ref_held_by_me = 0; int ref_held_by_me = 0;
...@@ -2983,10 +2987,10 @@ static bool nfsd4_request_too_big(struct svc_rqst *rqstp, ...@@ -2983,10 +2987,10 @@ static bool nfsd4_request_too_big(struct svc_rqst *rqstp,
} }
__be32 __be32
nfsd4_sequence(struct svc_rqst *rqstp, nfsd4_sequence(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
struct nfsd4_sequence *seq)
{ {
struct nfsd4_sequence *seq = &u->sequence;
struct nfsd4_compoundres *resp = rqstp->rq_resp; struct nfsd4_compoundres *resp = rqstp->rq_resp;
struct xdr_stream *xdr = &resp->xdr; struct xdr_stream *xdr = &resp->xdr;
struct nfsd4_session *session; struct nfsd4_session *session;
...@@ -3120,8 +3124,11 @@ nfsd4_sequence_done(struct nfsd4_compoundres *resp) ...@@ -3120,8 +3124,11 @@ nfsd4_sequence_done(struct nfsd4_compoundres *resp)
} }
__be32 __be32
nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_destroy_clientid *dc) nfsd4_destroy_clientid(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate,
union nfsd4_op_u *u)
{ {
struct nfsd4_destroy_clientid *dc = &u->destroy_clientid;
struct nfs4_client *conf, *unconf; struct nfs4_client *conf, *unconf;
struct nfs4_client *clp = NULL; struct nfs4_client *clp = NULL;
__be32 status = 0; __be32 status = 0;
...@@ -3161,8 +3168,10 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta ...@@ -3161,8 +3168,10 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta
} }
__be32 __be32
nfsd4_reclaim_complete(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_reclaim_complete *rc) nfsd4_reclaim_complete(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
{ {
struct nfsd4_reclaim_complete *rc = &u->reclaim_complete;
__be32 status = 0; __be32 status = 0;
if (rc->rca_one_fs) { if (rc->rca_one_fs) {
...@@ -3199,8 +3208,9 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta ...@@ -3199,8 +3208,9 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta
__be32 __be32
nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_setclientid *setclid) union nfsd4_op_u *u)
{ {
struct nfsd4_setclientid *setclid = &u->setclientid;
struct xdr_netobj clname = setclid->se_name; struct xdr_netobj clname = setclid->se_name;
nfs4_verifier clverifier = setclid->se_verf; nfs4_verifier clverifier = setclid->se_verf;
struct nfs4_client *conf, *new; struct nfs4_client *conf, *new;
...@@ -3257,9 +3267,11 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -3257,9 +3267,11 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
__be32 __be32
nfsd4_setclientid_confirm(struct svc_rqst *rqstp, nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate,
struct nfsd4_setclientid_confirm *setclientid_confirm) union nfsd4_op_u *u)
{ {
struct nfsd4_setclientid_confirm *setclientid_confirm =
&u->setclientid_confirm;
struct nfs4_client *conf, *unconf; struct nfs4_client *conf, *unconf;
struct nfs4_client *old = NULL; struct nfs4_client *old = NULL;
nfs4_verifier confirm = setclientid_confirm->sc_confirm; nfs4_verifier confirm = setclientid_confirm->sc_confirm;
...@@ -4506,8 +4518,9 @@ void nfsd4_cleanup_open_state(struct nfsd4_compound_state *cstate, ...@@ -4506,8 +4518,9 @@ void nfsd4_cleanup_open_state(struct nfsd4_compound_state *cstate,
__be32 __be32
nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
clientid_t *clid) union nfsd4_op_u *u)
{ {
clientid_t *clid = &u->renew;
struct nfs4_client *clp; struct nfs4_client *clp;
__be32 status; __be32 status;
struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
...@@ -4993,8 +5006,9 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp, ...@@ -4993,8 +5006,9 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp,
*/ */
__be32 __be32
nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_test_stateid *test_stateid) union nfsd4_op_u *u)
{ {
struct nfsd4_test_stateid *test_stateid = &u->test_stateid;
struct nfsd4_test_stateid_id *stateid; struct nfsd4_test_stateid_id *stateid;
struct nfs4_client *cl = cstate->session->se_client; struct nfs4_client *cl = cstate->session->se_client;
...@@ -5033,8 +5047,9 @@ nfsd4_free_lock_stateid(stateid_t *stateid, struct nfs4_stid *s) ...@@ -5033,8 +5047,9 @@ nfsd4_free_lock_stateid(stateid_t *stateid, struct nfs4_stid *s)
__be32 __be32
nfsd4_free_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_free_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_free_stateid *free_stateid) union nfsd4_op_u *u)
{ {
struct nfsd4_free_stateid *free_stateid = &u->free_stateid;
stateid_t *stateid = &free_stateid->fr_stateid; stateid_t *stateid = &free_stateid->fr_stateid;
struct nfs4_stid *s; struct nfs4_stid *s;
struct nfs4_delegation *dp; struct nfs4_delegation *dp;
...@@ -5162,8 +5177,9 @@ static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cs ...@@ -5162,8 +5177,9 @@ static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cs
__be32 __be32
nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_open_confirm *oc) union nfsd4_op_u *u)
{ {
struct nfsd4_open_confirm *oc = &u->open_confirm;
__be32 status; __be32 status;
struct nfs4_openowner *oo; struct nfs4_openowner *oo;
struct nfs4_ol_stateid *stp; struct nfs4_ol_stateid *stp;
...@@ -5230,9 +5246,9 @@ static inline void nfs4_stateid_downgrade(struct nfs4_ol_stateid *stp, u32 to_ac ...@@ -5230,9 +5246,9 @@ static inline void nfs4_stateid_downgrade(struct nfs4_ol_stateid *stp, u32 to_ac
__be32 __be32
nfsd4_open_downgrade(struct svc_rqst *rqstp, nfsd4_open_downgrade(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate, union nfsd4_op_u *u)
struct nfsd4_open_downgrade *od)
{ {
struct nfsd4_open_downgrade *od = &u->open_downgrade;
__be32 status; __be32 status;
struct nfs4_ol_stateid *stp; struct nfs4_ol_stateid *stp;
struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
...@@ -5300,8 +5316,9 @@ static void nfsd4_close_open_stateid(struct nfs4_ol_stateid *s) ...@@ -5300,8 +5316,9 @@ static void nfsd4_close_open_stateid(struct nfs4_ol_stateid *s)
*/ */
__be32 __be32
nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_close *close) union nfsd4_op_u *u)
{ {
struct nfsd4_close *close = &u->close;
__be32 status; __be32 status;
struct nfs4_ol_stateid *stp; struct nfs4_ol_stateid *stp;
struct net *net = SVC_NET(rqstp); struct net *net = SVC_NET(rqstp);
...@@ -5330,8 +5347,9 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -5330,8 +5347,9 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
__be32 __be32
nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_delegreturn *dr) union nfsd4_op_u *u)
{ {
struct nfsd4_delegreturn *dr = &u->delegreturn;
struct nfs4_delegation *dp; struct nfs4_delegation *dp;
stateid_t *stateid = &dr->dr_stateid; stateid_t *stateid = &dr->dr_stateid;
struct nfs4_stid *s; struct nfs4_stid *s;
...@@ -5706,8 +5724,9 @@ lookup_or_create_lock_state(struct nfsd4_compound_state *cstate, ...@@ -5706,8 +5724,9 @@ lookup_or_create_lock_state(struct nfsd4_compound_state *cstate,
*/ */
__be32 __be32
nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_lock *lock) union nfsd4_op_u *u)
{ {
struct nfsd4_lock *lock = &u->lock;
struct nfs4_openowner *open_sop = NULL; struct nfs4_openowner *open_sop = NULL;
struct nfs4_lockowner *lock_sop = NULL; struct nfs4_lockowner *lock_sop = NULL;
struct nfs4_ol_stateid *lock_stp = NULL; struct nfs4_ol_stateid *lock_stp = NULL;
...@@ -5939,8 +5958,9 @@ static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct ...@@ -5939,8 +5958,9 @@ static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct
*/ */
__be32 __be32
nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_lockt *lockt) union nfsd4_op_u *u)
{ {
struct nfsd4_lockt *lockt = &u->lockt;
struct file_lock *file_lock = NULL; struct file_lock *file_lock = NULL;
struct nfs4_lockowner *lo = NULL; struct nfs4_lockowner *lo = NULL;
__be32 status; __be32 status;
...@@ -6012,8 +6032,9 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -6012,8 +6032,9 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
__be32 __be32
nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
struct nfsd4_locku *locku) union nfsd4_op_u *u)
{ {
struct nfsd4_locku *locku = &u->locku;
struct nfs4_ol_stateid *stp; struct nfs4_ol_stateid *stp;
struct file *filp = NULL; struct file *filp = NULL;
struct file_lock *file_lock = NULL; struct file_lock *file_lock = NULL;
...@@ -6119,8 +6140,9 @@ check_for_locks(struct nfs4_file *fp, struct nfs4_lockowner *lowner) ...@@ -6119,8 +6140,9 @@ check_for_locks(struct nfs4_file *fp, struct nfs4_lockowner *lowner)
__be32 __be32
nfsd4_release_lockowner(struct svc_rqst *rqstp, nfsd4_release_lockowner(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate,
struct nfsd4_release_lockowner *rlockowner) union nfsd4_op_u *u)
{ {
struct nfsd4_release_lockowner *rlockowner = &u->release_lockowner;
clientid_t *clid = &rlockowner->rl_clientid; clientid_t *clid = &rlockowner->rl_clientid;
struct nfs4_stateowner *sop; struct nfs4_stateowner *sop;
struct nfs4_lockowner *lo = NULL; struct nfs4_lockowner *lo = NULL;
......
...@@ -577,6 +577,7 @@ struct nfsd4_op { ...@@ -577,6 +577,7 @@ struct nfsd4_op {
struct nfsd4_bind_conn_to_session bind_conn_to_session; struct nfsd4_bind_conn_to_session bind_conn_to_session;
struct nfsd4_create_session create_session; struct nfsd4_create_session create_session;
struct nfsd4_destroy_session destroy_session; struct nfsd4_destroy_session destroy_session;
struct nfsd4_destroy_clientid destroy_clientid;
struct nfsd4_sequence sequence; struct nfsd4_sequence sequence;
struct nfsd4_reclaim_complete reclaim_complete; struct nfsd4_reclaim_complete reclaim_complete;
struct nfsd4_test_stateid test_stateid; struct nfsd4_test_stateid test_stateid;
...@@ -585,6 +586,7 @@ struct nfsd4_op { ...@@ -585,6 +586,7 @@ struct nfsd4_op {
struct nfsd4_layoutget layoutget; struct nfsd4_layoutget layoutget;
struct nfsd4_layoutcommit layoutcommit; struct nfsd4_layoutcommit layoutcommit;
struct nfsd4_layoutreturn layoutreturn; struct nfsd4_layoutreturn layoutreturn;
struct nfsd4_secinfo_no_name secinfo_no_name;
/* NFSv4.2 */ /* NFSv4.2 */
struct nfsd4_fallocate allocate; struct nfsd4_fallocate allocate;
...@@ -693,27 +695,26 @@ __be32 nfsd4_encode_fattr_to_buf(__be32 **p, int words, ...@@ -693,27 +695,26 @@ __be32 nfsd4_encode_fattr_to_buf(__be32 **p, int words,
struct dentry *dentry, struct dentry *dentry,
u32 *bmval, struct svc_rqst *, int ignore_crossmnt); u32 *bmval, struct svc_rqst *, int ignore_crossmnt);
extern __be32 nfsd4_setclientid(struct svc_rqst *rqstp, extern __be32 nfsd4_setclientid(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_setclientid *setclid);
extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp, extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_setclientid_confirm *setclientid_confirm);
extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp, extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_exchange_id *); struct nfsd4_compound_state *, union nfsd4_op_u *u);
extern __be32 nfsd4_backchannel_ctl(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_backchannel_ctl *); extern __be32 nfsd4_backchannel_ctl(struct svc_rqst *,
extern __be32 nfsd4_bind_conn_to_session(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_bind_conn_to_session *); struct nfsd4_compound_state *, union nfsd4_op_u *u);
extern __be32 nfsd4_bind_conn_to_session(struct svc_rqst *,
struct nfsd4_compound_state *, union nfsd4_op_u *u);
extern __be32 nfsd4_create_session(struct svc_rqst *, extern __be32 nfsd4_create_session(struct svc_rqst *,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_create_session *);
extern __be32 nfsd4_sequence(struct svc_rqst *, extern __be32 nfsd4_sequence(struct svc_rqst *,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_sequence *);
extern void nfsd4_sequence_done(struct nfsd4_compoundres *resp); extern void nfsd4_sequence_done(struct nfsd4_compoundres *resp);
extern __be32 nfsd4_destroy_session(struct svc_rqst *, extern __be32 nfsd4_destroy_session(struct svc_rqst *,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_destroy_session *); extern __be32 nfsd4_destroy_clientid(struct svc_rqst *, struct nfsd4_compound_state *,
extern __be32 nfsd4_destroy_clientid(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_destroy_clientid *); union nfsd4_op_u *u);
__be32 nfsd4_reclaim_complete(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_reclaim_complete *); __be32 nfsd4_reclaim_complete(struct svc_rqst *, struct nfsd4_compound_state *,
union nfsd4_op_u *u);
extern __be32 nfsd4_process_open1(struct nfsd4_compound_state *, extern __be32 nfsd4_process_open1(struct nfsd4_compound_state *,
struct nfsd4_open *open, struct nfsd_net *nn); struct nfsd4_open *open, struct nfsd_net *nn);
extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp, extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp,
...@@ -722,34 +723,29 @@ extern void nfsd4_cstate_clear_replay(struct nfsd4_compound_state *cstate); ...@@ -722,34 +723,29 @@ extern void nfsd4_cstate_clear_replay(struct nfsd4_compound_state *cstate);
extern void nfsd4_cleanup_open_state(struct nfsd4_compound_state *cstate, extern void nfsd4_cleanup_open_state(struct nfsd4_compound_state *cstate,
struct nfsd4_open *open); struct nfsd4_open *open);
extern __be32 nfsd4_open_confirm(struct svc_rqst *rqstp, extern __be32 nfsd4_open_confirm(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_open_confirm *oc); struct nfsd4_compound_state *, union nfsd4_op_u *u);
extern __be32 nfsd4_close(struct svc_rqst *rqstp, extern __be32 nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *,
struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_close *close);
extern __be32 nfsd4_open_downgrade(struct svc_rqst *rqstp, extern __be32 nfsd4_open_downgrade(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_open_downgrade *od);
extern __be32 nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *, extern __be32 nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *,
struct nfsd4_lock *lock); union nfsd4_op_u *u);
extern __be32 nfsd4_lockt(struct svc_rqst *rqstp, extern __be32 nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *,
struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_lockt *lockt); extern __be32 nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *,
extern __be32 nfsd4_locku(struct svc_rqst *rqstp, union nfsd4_op_u *u);
struct nfsd4_compound_state *,
struct nfsd4_locku *locku);
extern __be32 extern __be32
nfsd4_release_lockowner(struct svc_rqst *rqstp, nfsd4_release_lockowner(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_compound_state *, union nfsd4_op_u *u);
struct nfsd4_release_lockowner *rlockowner);
extern void nfsd4_release_compoundargs(struct svc_rqst *rqstp); extern void nfsd4_release_compoundargs(struct svc_rqst *rqstp);
extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp, extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr); struct nfsd4_compound_state *, union nfsd4_op_u *u);
extern __be32 nfsd4_renew(struct svc_rqst *rqstp, extern __be32 nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *,
struct nfsd4_compound_state *, clientid_t *clid); union nfsd4_op_u *u);
extern __be32 nfsd4_test_stateid(struct svc_rqst *rqstp, extern __be32 nfsd4_test_stateid(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_test_stateid *test_stateid); struct nfsd4_compound_state *, union nfsd4_op_u *);
extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp, extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp,
struct nfsd4_compound_state *, struct nfsd4_free_stateid *free_stateid); struct nfsd4_compound_state *, union nfsd4_op_u *);
extern void nfsd4_bump_seqid(struct nfsd4_compound_state *, __be32 nfserr); extern void nfsd4_bump_seqid(struct nfsd4_compound_state *, __be32 nfserr);
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment