summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtsock.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2019-07-18 03:22:38 +0200
committerTrond Myklebust <trond.myklebust@hammerspace.com>2019-07-18 20:43:52 +0200
commit75369089820473eac45e9ddd970081901a373c08 (patch)
tree348fdb310218b444e10e0d88ebfef28c2e9242a0 /net/sunrpc/xprtsock.c
parentpnfs/flexfiles: Fix PTR_ERR() dereferences in ff_layout_track_ds_error (diff)
downloadlinux-75369089820473eac45e9ddd970081901a373c08.tar.xz
linux-75369089820473eac45e9ddd970081901a373c08.zip
SUNRPC: Ensure the bvecs are reset when we re-encode the RPC request
The bvec tracks the list of pages, so if the number of pages changes due to a re-encode, we need to reset the bvec as well. Fixes: 277e4ab7d530 ("SUNRPC: Simplify TCP receive code by switching...") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Cc: stable@vger.kernel.org # v4.20+
Diffstat (limited to '')
-rw-r--r--net/sunrpc/xprtsock.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 6b1fca51028a..e2176c167a57 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -909,6 +909,7 @@ static int xs_nospace(struct rpc_rqst *req)
static void
xs_stream_prepare_request(struct rpc_rqst *req)
{
+ xdr_free_bvec(&req->rq_rcv_buf);
req->rq_task->tk_status = xdr_alloc_bvec(&req->rq_rcv_buf, GFP_KERNEL);
}