diff options
author | Tom Tucker <tom@opengridcomputing.com> | 2008-07-02 23:56:13 +0400 |
---|---|---|
committer | Tom Tucker <tom@opengridcomputing.com> | 2008-07-03 00:01:54 +0400 |
commit | 34d16e42a6ab74a4a4389c061dfa3c6609e08fa0 (patch) | |
tree | 85b1939f8096ea89bf7c2ccb569ae3b5e0667905 /net/sunrpc/xprtrdma/svc_rdma_transport.c | |
parent | ab96dddbedf4bb8a7a0fe44012efc1d99598c36f (diff) | |
download | linux-34d16e42a6ab74a4a4389c061dfa3c6609e08fa0.tar.xz |
svcrdma: Use RPC reply map for RDMA_WRITE processing
Use the new svc_rdma_req_map data type for mapping the client side memory
to the server side memory. Move the DMA mapping to the context pointed to
by each WR individually so that it is unmapped after the WR completes.
Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_transport.c')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_transport.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index ae90758d8e9b..fc86338bcbb2 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c @@ -387,10 +387,13 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt) switch (ctxt->wr_op) { case IB_WR_SEND: - case IB_WR_RDMA_WRITE: svc_rdma_put_context(ctxt, 1); break; + case IB_WR_RDMA_WRITE: + svc_rdma_put_context(ctxt, 0); + break; + case IB_WR_RDMA_READ: if (test_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags)) { struct svc_rdma_op_ctxt *read_hdr = ctxt->read_hdr; |