aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Talpey <talpey@netapp.com>2008-10-09 14:59:59 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2008-10-10 15:09:24 -0400
commitfe9053b30bb48b99f7b45541249f5cfe96bdf7f7 (patch)
tree41904e855b60678ae8788e68e8a5944d686b31e3
parent8d4ba0347ccfea4f12e56e2484954b891411b74d (diff)
RPC/RDMA: add data types and new FRMR memory registration enum.
Internal RPC/RDMA structure updates in preparation for FRMR support. Signed-off-by: Tom Talpey <talpey@netapp.com> Acked-by: Tom Tucker <tom@opengridcomputing.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--include/linux/sunrpc/xprtrdma.h1
-rw-r--r--net/sunrpc/xprtrdma/xprt_rdma.h8
2 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h
index 4de56b1d372b..55a5d92ca1e2 100644
--- a/include/linux/sunrpc/xprtrdma.h
+++ b/include/linux/sunrpc/xprtrdma.h
@@ -78,6 +78,7 @@ enum rpcrdma_memreg {
78 RPCRDMA_MEMWINDOWS, 78 RPCRDMA_MEMWINDOWS,
79 RPCRDMA_MEMWINDOWS_ASYNC, 79 RPCRDMA_MEMWINDOWS_ASYNC,
80 RPCRDMA_MTHCAFMR, 80 RPCRDMA_MTHCAFMR,
81 RPCRDMA_FRMR,
81 RPCRDMA_ALLPHYSICAL, 82 RPCRDMA_ALLPHYSICAL,
82 RPCRDMA_LAST 83 RPCRDMA_LAST
83}; 84};
diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
index 2427822f8bd4..05b7898e1f4b 100644
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -58,6 +58,8 @@ struct rpcrdma_ia {
58 struct rdma_cm_id *ri_id; 58 struct rdma_cm_id *ri_id;
59 struct ib_pd *ri_pd; 59 struct ib_pd *ri_pd;
60 struct ib_mr *ri_bind_mem; 60 struct ib_mr *ri_bind_mem;
61 u32 ri_dma_lkey;
62 int ri_have_dma_lkey;
61 struct completion ri_done; 63 struct completion ri_done;
62 int ri_async_rc; 64 int ri_async_rc;
63 enum rpcrdma_memreg ri_memreg_strategy; 65 enum rpcrdma_memreg ri_memreg_strategy;
@@ -156,6 +158,10 @@ struct rpcrdma_mr_seg { /* chunk descriptors */
156 union { 158 union {
157 struct ib_mw *mw; 159 struct ib_mw *mw;
158 struct ib_fmr *fmr; 160 struct ib_fmr *fmr;
161 struct {
162 struct ib_fast_reg_page_list *fr_pgl;
163 struct ib_mr *fr_mr;
164 } frmr;
159 } r; 165 } r;
160 struct list_head mw_list; 166 struct list_head mw_list;
161 } *rl_mw; 167 } *rl_mw;
@@ -198,7 +204,7 @@ struct rpcrdma_buffer {
198 atomic_t rb_credits; /* most recent server credits */ 204 atomic_t rb_credits; /* most recent server credits */
199 unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */ 205 unsigned long rb_cwndscale; /* cached framework rpc_cwndscale */
200 int rb_max_requests;/* client max requests */ 206 int rb_max_requests;/* client max requests */
201 struct list_head rb_mws; /* optional memory windows/fmrs */ 207 struct list_head rb_mws; /* optional memory windows/fmrs/frmrs */
202 int rb_send_index; 208 int rb_send_index;
203 struct rpcrdma_req **rb_send_bufs; 209 struct rpcrdma_req **rb_send_bufs;
204 int rb_recv_index; 210 int rb_recv_index;