aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfsd
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfsd')
-rw-r--r--include/linux/nfsd/cache.h1
-rw-r--r--include/linux/nfsd/state.h13
-rw-r--r--include/linux/nfsd/xdr4.h4
3 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/nfsd/cache.h b/include/linux/nfsd/cache.h
index 04b355c801d8..a59a2df6d079 100644
--- a/include/linux/nfsd/cache.h
+++ b/include/linux/nfsd/cache.h
@@ -75,5 +75,6 @@ int nfsd_reply_cache_init(void);
75void nfsd_reply_cache_shutdown(void); 75void nfsd_reply_cache_shutdown(void);
76int nfsd_cache_lookup(struct svc_rqst *, int); 76int nfsd_cache_lookup(struct svc_rqst *, int);
77void nfsd_cache_update(struct svc_rqst *, int, __be32 *); 77void nfsd_cache_update(struct svc_rqst *, int, __be32 *);
78void nfsd4_set_statp(struct svc_rqst *rqstp, __be32 *statp);
78 79
79#endif /* NFSCACHE_H */ 80#endif /* NFSCACHE_H */
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index 90829db76861..f1edb1d98523 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -99,9 +99,22 @@ struct nfs4_callback {
99 struct rpc_clnt * cb_client; 99 struct rpc_clnt * cb_client;
100}; 100};
101 101
102/* Maximum number of pages per slot cache entry */
103#define NFSD_PAGES_PER_SLOT 1
104
105struct nfsd4_cache_entry {
106 __be32 ce_status;
107 struct kvec ce_datav; /* encoded NFSv4.1 data in rq_res.head[0] */
108 struct page *ce_respages[NFSD_PAGES_PER_SLOT + 1];
109 short ce_resused;
110 int ce_opcnt;
111 int ce_rpchdrlen;
112};
113
102struct nfsd4_slot { 114struct nfsd4_slot {
103 bool sl_inuse; 115 bool sl_inuse;
104 u32 sl_seqid; 116 u32 sl_seqid;
117 struct nfsd4_cache_entry sl_cache_entry;
105}; 118};
106 119
107struct nfsd4_session { 120struct nfsd4_session {
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h
index 6e28a041008d..d091684325af 100644
--- a/include/linux/nfsd/xdr4.h
+++ b/include/linux/nfsd/xdr4.h
@@ -51,6 +51,8 @@ struct nfsd4_compound_state {
51 /* For sessions DRC */ 51 /* For sessions DRC */
52 struct nfsd4_session *session; 52 struct nfsd4_session *session;
53 struct nfsd4_slot *slot; 53 struct nfsd4_slot *slot;
54 __be32 *statp;
55 u32 status;
54}; 56};
55 57
56struct nfsd4_change_info { 58struct nfsd4_change_info {
@@ -487,6 +489,8 @@ extern __be32 nfsd4_setclientid(struct svc_rqst *rqstp,
487extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp, 489extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
488 struct nfsd4_compound_state *, 490 struct nfsd4_compound_state *,
489 struct nfsd4_setclientid_confirm *setclientid_confirm); 491 struct nfsd4_setclientid_confirm *setclientid_confirm);
492extern void nfsd4_store_cache_entry(struct nfsd4_compoundres *resp);
493extern __be32 nfsd4_replay_cache_entry(struct nfsd4_compoundres *resp);
490extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp, 494extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp,
491 struct nfsd4_compound_state *, 495 struct nfsd4_compound_state *,
492struct nfsd4_exchange_id *); 496struct nfsd4_exchange_id *);