diff options
Diffstat (limited to 'fs/nfsd/cache.h')
| -rw-r--r-- | fs/nfsd/cache.h | 28 | 
1 files changed, 16 insertions, 12 deletions
diff --git a/fs/nfsd/cache.h b/fs/nfsd/cache.h index d892be61016..b582f9ab6b2 100644 --- a/fs/nfsd/cache.h +++ b/fs/nfsd/cache.h @@ -12,6 +12,10 @@  /*   * Representation of a reply cache entry. + * + * Note that we use a sockaddr_in6 to hold the address instead of the more + * typical sockaddr_storage. This is for space reasons, since sockaddr_storage + * is much larger than a sockaddr_in6.   */  struct svc_cacherep {  	struct hlist_node	c_hash; @@ -20,11 +24,13 @@ struct svc_cacherep {  	unsigned char		c_state,	/* unused, inprog, done */  				c_type,		/* status, buffer */  				c_secure : 1;	/* req came from port < 1024 */ -	struct sockaddr_in	c_addr; +	struct sockaddr_in6	c_addr;  	__be32			c_xid;  	u32			c_prot;  	u32			c_proc;  	u32			c_vers; +	unsigned int		c_len; +	__wsum			c_csum;  	unsigned long		c_timestamp;  	union {  		struct kvec	u_vec; @@ -46,8 +52,7 @@ enum {  enum {  	RC_DROPIT,  	RC_REPLY, -	RC_DOIT, -	RC_INTR +	RC_DOIT  };  /* @@ -67,17 +72,16 @@ enum {   */  #define RC_DELAY		(HZ/5) +/* Cache entries expire after this time period */ +#define RC_EXPIRE		(120 * HZ) + +/* Checksum this amount of the request */ +#define RC_CSUMLEN		(256U) +  int	nfsd_reply_cache_init(void);  void	nfsd_reply_cache_shutdown(void); -int	nfsd_cache_lookup(struct svc_rqst *, int); +int	nfsd_cache_lookup(struct svc_rqst *);  void	nfsd_cache_update(struct svc_rqst *, int, __be32 *); - -#ifdef CONFIG_NFSD_V4 -void	nfsd4_set_statp(struct svc_rqst *rqstp, __be32 *statp); -#else  /* CONFIG_NFSD_V4 */ -static inline void nfsd4_set_statp(struct svc_rqst *rqstp, __be32 *statp) -{ -} -#endif /* CONFIG_NFSD_V4 */ +int	nfsd_reply_cache_stats_open(struct inode *, struct file *);  #endif /* NFSCACHE_H */  | 
