|
@@ -1791,6 +1791,7 @@ priv_release_snd_buf(struct rpc_rqst *rqstp)
|
|
|
for (i=0; i < rqstp->rq_enc_pages_num; i++)
|
|
|
__free_page(rqstp->rq_enc_pages[i]);
|
|
|
kfree(rqstp->rq_enc_pages);
|
|
|
+ rqstp->rq_release_snd_buf = NULL;
|
|
|
}
|
|
|
|
|
|
static int
|
|
@@ -1799,6 +1800,9 @@ alloc_enc_pages(struct rpc_rqst *rqstp)
|
|
|
struct xdr_buf *snd_buf = &rqstp->rq_snd_buf;
|
|
|
int first, last, i;
|
|
|
|
|
|
+ if (rqstp->rq_release_snd_buf)
|
|
|
+ rqstp->rq_release_snd_buf(rqstp);
|
|
|
+
|
|
|
if (snd_buf->page_len == 0) {
|
|
|
rqstp->rq_enc_pages_num = 0;
|
|
|
return 0;
|