svcrdma: Fence LOCAL_INV work requests
authorSteve Wise <swise@opengridcomputing.com>
Thu, 5 Jun 2014 14:54:31 +0000 (09:54 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 6 Jun 2014 23:22:51 +0000 (19:22 -0400)
Fencing forces the invalidate to only happen after all prior send
work requests have been completed.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Reported by : Devesh Sharma <Devesh.Sharma@Emulex.Com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c

index 52d9f2ce20b06c27fb3b31fa4af251c09fb05e1f..8f92a61ee2df01aff4f7a370c6c27513bf66cb40 100644 (file)
@@ -338,7 +338,7 @@ static int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt,
                memset(&inv_wr, 0, sizeof(inv_wr));
                inv_wr.wr_id = (unsigned long)ctxt;
                inv_wr.opcode = IB_WR_LOCAL_INV;
-               inv_wr.send_flags = IB_SEND_SIGNALED;
+               inv_wr.send_flags = IB_SEND_SIGNALED | IB_SEND_FENCE;
                inv_wr.ex.invalidate_rkey = frmr->mr->lkey;
        }
        ctxt->wr_op = read_wr.opcode;