Commit 253a5162 authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker

xprtrdma: Refactor frwr_init_mr()

Clean up: prepare for combining the rpcrdma_ia and rpcrdma_ep
structures. Take the opportunity to rename the function to be
consistent with the "subsystem _ object _ verb" naming scheme.
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 85cd8e2b
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
/** /**
* frwr_release_mr - Destroy one MR * frwr_release_mr - Destroy one MR
* @mr: MR allocated by frwr_init_mr * @mr: MR allocated by frwr_mr_init
* *
*/ */
void frwr_release_mr(struct rpcrdma_mr *mr) void frwr_release_mr(struct rpcrdma_mr *mr)
...@@ -106,15 +106,16 @@ void frwr_reset(struct rpcrdma_req *req) ...@@ -106,15 +106,16 @@ void frwr_reset(struct rpcrdma_req *req)
} }
/** /**
* frwr_init_mr - Initialize one MR * frwr_mr_init - Initialize one MR
* @ia: interface adapter * @r_xprt: controlling transport instance
* @mr: generic MR to prepare for FRWR * @mr: generic MR to prepare for FRWR
* *
* Returns zero if successful. Otherwise a negative errno * Returns zero if successful. Otherwise a negative errno
* is returned. * is returned.
*/ */
int frwr_init_mr(struct rpcrdma_ia *ia, struct rpcrdma_mr *mr) int frwr_mr_init(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr *mr)
{ {
struct rpcrdma_ia *ia = &r_xprt->rx_ia;
unsigned int depth = ia->ri_max_frwr_depth; unsigned int depth = ia->ri_max_frwr_depth;
struct scatterlist *sg; struct scatterlist *sg;
struct ib_mr *frmr; struct ib_mr *frmr;
...@@ -128,6 +129,7 @@ int frwr_init_mr(struct rpcrdma_ia *ia, struct rpcrdma_mr *mr) ...@@ -128,6 +129,7 @@ int frwr_init_mr(struct rpcrdma_ia *ia, struct rpcrdma_mr *mr)
if (!sg) if (!sg)
goto out_list_err; goto out_list_err;
mr->mr_xprt = r_xprt;
mr->frwr.fr_mr = frmr; mr->frwr.fr_mr = frmr;
mr->mr_dir = DMA_NONE; mr->mr_dir = DMA_NONE;
INIT_LIST_HEAD(&mr->mr_list); INIT_LIST_HEAD(&mr->mr_list);
......
...@@ -896,14 +896,12 @@ rpcrdma_mrs_create(struct rpcrdma_xprt *r_xprt) ...@@ -896,14 +896,12 @@ rpcrdma_mrs_create(struct rpcrdma_xprt *r_xprt)
if (!mr) if (!mr)
break; break;
rc = frwr_init_mr(ia, mr); rc = frwr_mr_init(r_xprt, mr);
if (rc) { if (rc) {
kfree(mr); kfree(mr);
break; break;
} }
mr->mr_xprt = r_xprt;
spin_lock(&buf->rb_lock); spin_lock(&buf->rb_lock);
rpcrdma_mr_push(mr, &buf->rb_mrs); rpcrdma_mr_push(mr, &buf->rb_mrs);
list_add(&mr->mr_all, &buf->rb_all_mrs); list_add(&mr->mr_all, &buf->rb_all_mrs);
......
...@@ -536,7 +536,7 @@ rpcrdma_data_dir(bool writing) ...@@ -536,7 +536,7 @@ rpcrdma_data_dir(bool writing)
void frwr_reset(struct rpcrdma_req *req); void frwr_reset(struct rpcrdma_req *req);
int frwr_query_device(struct rpcrdma_xprt *r_xprt, int frwr_query_device(struct rpcrdma_xprt *r_xprt,
const struct ib_device *device); const struct ib_device *device);
int frwr_init_mr(struct rpcrdma_ia *ia, struct rpcrdma_mr *mr); int frwr_mr_init(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr *mr);
void frwr_release_mr(struct rpcrdma_mr *mr); void frwr_release_mr(struct rpcrdma_mr *mr);
struct rpcrdma_mr_seg *frwr_map(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr_seg *frwr_map(struct rpcrdma_xprt *r_xprt,
struct rpcrdma_mr_seg *seg, struct rpcrdma_mr_seg *seg,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment