diff options
Diffstat (limited to 'include/linux/sunrpc')
| -rw-r--r-- | include/linux/sunrpc/svc.h | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index d83db800fe0..676ddf53b3e 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h @@ -243,6 +243,7 @@ struct svc_rqst {  	struct page *		rq_pages[RPCSVC_MAXPAGES];  	struct page *		*rq_respages;	/* points into rq_pages */  	int			rq_resused;	/* number of pages used for result */ +	struct page *		*rq_next_page; /* next reply page to use */  	struct kvec		rq_vec[RPCSVC_MAXPAGES]; /* generally useful.. */ @@ -338,9 +339,8 @@ xdr_ressize_check(struct svc_rqst *rqstp, __be32 *p)  static inline void svc_free_res_pages(struct svc_rqst *rqstp)  { -	while (rqstp->rq_resused) { -		struct page **pp = (rqstp->rq_respages + -				    --rqstp->rq_resused); +	while (rqstp->rq_next_page != rqstp->rq_respages) { +		struct page **pp = --rqstp->rq_next_page;  		if (*pp) {  			put_page(*pp);  			*pp = NULL;  |