nfsd4: remove HAS_SESSION
[firefly-linux-kernel-4.4.55.git] / fs / nfsd / xdr4.h
index 366401e1a536430f5314e2fe1496a777fd0dc31b..663193b21a2403a767196bfde0051e8955511dbb 100644 (file)
@@ -342,6 +342,25 @@ struct nfsd4_setclientid_confirm {
        nfs4_verifier   sc_confirm;
 };
 
+struct nfsd4_saved_compoundargs {
+       __be32 *p;
+       __be32 *end;
+       int pagelen;
+       struct page **pagelist;
+};
+
+struct nfsd4_test_stateid {
+       __be32          ts_num_ids;
+       bool            ts_has_session;
+       struct nfsd4_compoundargs *ts_saved_args;
+       struct nfsd4_saved_compoundargs ts_savedp;
+};
+
+struct nfsd4_free_stateid {
+       stateid_t       fr_stateid;         /* request */
+       __be32          fr_status;          /* response */
+};
+
 /* also used for NVERIFY */
 struct nfsd4_verify {
        u32             ve_bmval[3];        /* request */
@@ -432,10 +451,14 @@ struct nfsd4_op {
                struct nfsd4_destroy_session    destroy_session;
                struct nfsd4_sequence           sequence;
                struct nfsd4_reclaim_complete   reclaim_complete;
+               struct nfsd4_test_stateid       test_stateid;
+               struct nfsd4_free_stateid       free_stateid;
        } u;
        struct nfs4_replay *                    replay;
 };
 
+bool nfsd4_cache_this_op(struct nfsd4_op *);
+
 struct nfsd4_compoundargs {
        /* scratch variables for XDR decode */
        __be32 *                        p;
@@ -458,6 +481,7 @@ struct nfsd4_compoundargs {
        u32                             opcnt;
        struct nfsd4_op                 *ops;
        struct nfsd4_op                 iops[8];
+       int                             cachetype;
 };
 
 struct nfsd4_compoundres {
@@ -559,11 +583,15 @@ extern __be32
 nfsd4_release_lockowner(struct svc_rqst *rqstp,
                struct nfsd4_compound_state *,
                struct nfsd4_release_lockowner *rlockowner);
-extern void nfsd4_release_compoundargs(struct nfsd4_compoundargs *);
+extern int nfsd4_release_compoundargs(void *rq, __be32 *p, void *resp);
 extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp,
                struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr);
 extern __be32 nfsd4_renew(struct svc_rqst *rqstp,
                          struct nfsd4_compound_state *, clientid_t *clid);
+extern __be32 nfsd4_test_stateid(struct svc_rqst *rqstp,
+               struct nfsd4_compound_state *, struct nfsd4_test_stateid *test_stateid);
+extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp,
+               struct nfsd4_compound_state *, struct nfsd4_free_stateid *free_stateid);
 #endif
 
 /*