diff options
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_sendto.c')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_sendto.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c index 981f190c1b39..fb82b1b683f8 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c | |||
@@ -389,6 +389,17 @@ static int send_reply(struct svcxprt_rdma *rdma, | |||
389 | int page_no; | 389 | int page_no; |
390 | int ret; | 390 | int ret; |
391 | 391 | ||
392 | /* Post a recv buffer to handle another request. */ | ||
393 | ret = svc_rdma_post_recv(rdma); | ||
394 | if (ret) { | ||
395 | printk(KERN_INFO | ||
396 | "svcrdma: could not post a receive buffer, err=%d." | ||
397 | "Closing transport %p.\n", ret, rdma); | ||
398 | set_bit(XPT_CLOSE, &rdma->sc_xprt.xpt_flags); | ||
399 | svc_rdma_put_context(ctxt, 0); | ||
400 | return -ENOTCONN; | ||
401 | } | ||
402 | |||
392 | /* Prepare the context */ | 403 | /* Prepare the context */ |
393 | ctxt->pages[0] = page; | 404 | ctxt->pages[0] = page; |
394 | ctxt->count = 1; | 405 | ctxt->count = 1; |