diff options
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c index a4756576d687..629a28764da9 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | |||
@@ -646,8 +646,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp) | |||
646 | ret = rdma_read_xdr(rdma_xprt, rmsgp, rqstp, ctxt); | 646 | ret = rdma_read_xdr(rdma_xprt, rmsgp, rqstp, ctxt); |
647 | if (ret > 0) { | 647 | if (ret > 0) { |
648 | /* read-list posted, defer until data received from client. */ | 648 | /* read-list posted, defer until data received from client. */ |
649 | svc_xprt_received(xprt); | 649 | goto defer; |
650 | return 0; | ||
651 | } | 650 | } |
652 | if (ret < 0) { | 651 | if (ret < 0) { |
653 | /* Post of read-list failed, free context. */ | 652 | /* Post of read-list failed, free context. */ |
@@ -679,6 +678,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp) | |||
679 | * close bit and call svc_xprt_delete | 678 | * close bit and call svc_xprt_delete |
680 | */ | 679 | */ |
681 | set_bit(XPT_CLOSE, &xprt->xpt_flags); | 680 | set_bit(XPT_CLOSE, &xprt->xpt_flags); |
681 | defer: | ||
682 | svc_xprt_received(xprt); | 682 | svc_xprt_received(xprt); |
683 | return 0; | 683 | return 0; |
684 | } | 684 | } |