diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-11-11 08:27:11 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-11-11 08:27:11 +0100 |
commit | bfdd5537dcc857eaa04c055ef8afcb8a80dea831 (patch) | |
tree | 6336969fb04fcd0db4bcbef529f318a86dc9f7c8 /net/sunrpc/xprtrdma/svc_rdma_backchannel.c | |
parent | sched/core: Explain sleep/wakeup in a better way (diff) | |
parent | Merge tag 'sound-4.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ti... (diff) | |
download | linux-bfdd5537dcc857eaa04c055ef8afcb8a80dea831.tar.xz linux-bfdd5537dcc857eaa04c055ef8afcb8a80dea831.zip |
Merge branch 'linus' into sched/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_backchannel.c')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c index 2d8545c34095..20027f8de129 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c @@ -177,18 +177,26 @@ xprt_rdma_bc_allocate(struct rpc_task *task) return -EINVAL; } + /* svc_rdma_sendto releases this page */ page = alloc_page(RPCRDMA_DEF_GFP); if (!page) return -ENOMEM; - rqst->rq_buffer = page_address(page); + + rqst->rq_rbuffer = kmalloc(rqst->rq_rcvsize, RPCRDMA_DEF_GFP); + if (!rqst->rq_rbuffer) { + put_page(page); + return -ENOMEM; + } return 0; } static void xprt_rdma_bc_free(struct rpc_task *task) { - /* No-op: ctxt and page have already been freed. */ + struct rpc_rqst *rqst = task->tk_rqstp; + + kfree(rqst->rq_rbuffer); } static int |