X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=net%2Fsunrpc%2Fxprt.c;h=069a6cbd49ea5c5e11ff1bb8bc73df0fecf117da;hb=02107148349f31eee7c0fb06fd7a880df73dbd20;hp=1ba55dc38b7ab5ea6dfd7de38ee2092a1a3d8d5a;hpb=5e5ce5be6f0161d2a069a4f8a1154fe639c5c02f;p=mirror_ubuntu-bionic-kernel.git diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 1ba55dc38b7a..069a6cbd49ea 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -838,7 +838,10 @@ static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) req->rq_timeout = xprt->timeout.to_initval; req->rq_task = task; req->rq_xprt = xprt; + req->rq_buffer = NULL; + req->rq_bufsize = 0; req->rq_xid = xprt_alloc_xid(xprt); + req->rq_release_snd_buf = NULL; dprintk("RPC: %4d reserved req %p xid %08x\n", task->tk_pid, req, ntohl(req->rq_xid)); } @@ -866,7 +869,10 @@ void xprt_release(struct rpc_task *task) mod_timer(&xprt->timer, xprt->last_used + xprt->idle_timeout); spin_unlock_bh(&xprt->transport_lock); + xprt->ops->buf_free(task); task->tk_rqstp = NULL; + if (req->rq_release_snd_buf) + req->rq_release_snd_buf(req); memset(req, 0, sizeof(*req)); /* mark unused */ dprintk("RPC: %4d release request %p\n", task->tk_pid, req);