diff options
Diffstat (limited to 'include/linux/nfsd')
-rw-r--r-- | include/linux/nfsd/cache.h | 1 | ||||
-rw-r--r-- | include/linux/nfsd/state.h | 13 | ||||
-rw-r--r-- | include/linux/nfsd/xdr4.h | 4 |
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); | |||
75 | void nfsd_reply_cache_shutdown(void); | 75 | void nfsd_reply_cache_shutdown(void); |
76 | int nfsd_cache_lookup(struct svc_rqst *, int); | 76 | int nfsd_cache_lookup(struct svc_rqst *, int); |
77 | void nfsd_cache_update(struct svc_rqst *, int, __be32 *); | 77 | void nfsd_cache_update(struct svc_rqst *, int, __be32 *); |
78 | void 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 | |||
105 | struct 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 | |||
102 | struct nfsd4_slot { | 114 | struct 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 | ||
107 | struct nfsd4_session { | 120 | struct 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 | ||
56 | struct nfsd4_change_info { | 58 | struct nfsd4_change_info { |
@@ -487,6 +489,8 @@ extern __be32 nfsd4_setclientid(struct svc_rqst *rqstp, | |||
487 | extern __be32 nfsd4_setclientid_confirm(struct svc_rqst *rqstp, | 489 | extern __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); |
492 | extern void nfsd4_store_cache_entry(struct nfsd4_compoundres *resp); | ||
493 | extern __be32 nfsd4_replay_cache_entry(struct nfsd4_compoundres *resp); | ||
490 | extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp, | 494 | extern __be32 nfsd4_exchange_id(struct svc_rqst *rqstp, |
491 | struct nfsd4_compound_state *, | 495 | struct nfsd4_compound_state *, |
492 | struct nfsd4_exchange_id *); | 496 | struct nfsd4_exchange_id *); |