From: Chuck Lever <chuck.lever@oracle.com>
To: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org
Subject: [PATCH v1 12/14] xprtrdma: Simplify synopsis of rpcrdma_ep_connect()
Date: Wed, 09 Nov 2016 14:06:28 -0500 [thread overview]
Message-ID: <20161109190628.15007.67246.stgit@manet.1015granger.net> (raw)
In-Reply-To: <20161109184735.15007.96507.stgit@manet.1015granger.net>
Clean up: Make the rpcrdma_xprt visible in the whole function.
The caller has it already, so eliminate the container_of noise, and
just pass it in explicitly.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
net/sunrpc/xprtrdma/transport.c | 2 +-
net/sunrpc/xprtrdma/verbs.c | 17 +++++++----------
net/sunrpc/xprtrdma/xprt_rdma.h | 2 +-
3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
index 534c178..349903b 100644
--- a/net/sunrpc/xprtrdma/transport.c
+++ b/net/sunrpc/xprtrdma/transport.c
@@ -259,7 +259,7 @@
dprintk("RPC: %s: %sconnect\n", __func__,
r_xprt->rx_ep.rep_connected != 0 ? "re" : "");
- rc = rpcrdma_ep_connect(&r_xprt->rx_ep, &r_xprt->rx_ia);
+ rc = rpcrdma_ep_connect(r_xprt);
if (rc)
xprt_wake_pending_tasks(xprt, rc);
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index 11d0774..901c3ab 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -634,26 +634,25 @@ static void rpcrdma_destroy_id(struct rdma_cm_id *id)
ib_free_cq(ep->rep_attr.send_cq);
}
-/*
- * Connect unconnected endpoint.
- */
int
-rpcrdma_ep_connect(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia)
+rpcrdma_ep_connect(struct rpcrdma_xprt *r_xprt)
{
+ struct rpcrdma_ep *ep = &r_xprt->rx_ep;
+ struct rpcrdma_ia *ia = &r_xprt->rx_ia;
struct rdma_cm_id *id, *old;
int rc = 0;
int retry_count = 0;
if (ep->rep_connected != 0) {
- struct rpcrdma_xprt *xprt;
+ struct sockaddr *sap;
+
retry:
dprintk("RPC: %s: reconnecting...\n", __func__);
rpcrdma_ep_disconnect(ep, ia);
- xprt = container_of(ia, struct rpcrdma_xprt, rx_ia);
- id = rpcrdma_create_id(xprt, ia,
- (struct sockaddr *)&xprt->rx_data.addr);
+ sap = (struct sockaddr *)&r_xprt->rx_data.addr;
+ id = rpcrdma_create_id(r_xprt, ia, sap);
if (IS_ERR(id)) {
rc = -EHOSTUNREACH;
goto out;
@@ -735,12 +734,10 @@ static void rpcrdma_destroy_id(struct rdma_cm_id *id)
}
rc = ep->rep_connected;
} else {
- struct rpcrdma_xprt *r_xprt;
unsigned int extras;
dprintk("RPC: %s: connected\n", __func__);
- r_xprt = container_of(ia, struct rpcrdma_xprt, rx_ia);
extras = r_xprt->rx_buf.rb_bc_srv_max_requests;
if (extras) {
diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h
index e35efd4..74760d9 100644
--- a/net/sunrpc/xprtrdma/xprt_rdma.h
+++ b/net/sunrpc/xprtrdma/xprt_rdma.h
@@ -489,7 +489,7 @@ struct rpcrdma_xprt {
int rpcrdma_ep_create(struct rpcrdma_ep *, struct rpcrdma_ia *,
struct rpcrdma_create_data_internal *);
void rpcrdma_ep_destroy(struct rpcrdma_ep *, struct rpcrdma_ia *);
-int rpcrdma_ep_connect(struct rpcrdma_ep *, struct rpcrdma_ia *);
+int rpcrdma_ep_connect(struct rpcrdma_xprt *r_xprt);
void rpcrdma_conn_func(struct rpcrdma_ep *ep);
void rpcrdma_ep_disconnect(struct rpcrdma_ep *, struct rpcrdma_ia *);
next prev parent reply other threads:[~2016-11-09 19:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-09 19:04 [PATCH v1 00/14] client-side NFS/RDMA patches proposed for v4.10 Chuck Lever
2016-11-09 19:04 ` [PATCH v1 01/14] xprtrdma: Fix DMAR failure in frwr_op_map() after reconnect Chuck Lever
2016-11-09 19:05 ` [PATCH v1 02/14] xprtrdma: Cap size of callback buffer resources Chuck Lever
2016-11-09 19:05 ` [PATCH v1 03/14] xprtrdma: Make FRWR send queue entry accounting more accurate Chuck Lever
2016-11-09 19:05 ` [PATCH v1 04/14] xprtrdma: Support for SG_GAP devices Chuck Lever
2016-11-09 19:05 ` [PATCH v1 05/14] SUNRPC: Proper metric accounting when RPC is not transmitted Chuck Lever
2016-11-09 19:05 ` [PATCH v1 06/14] xprtrdma: Address coverity complaint about wait_for_completion() Chuck Lever
2016-11-09 19:05 ` [PATCH v1 07/14] xprtrdma: Avoid calls to ro_unmap_safe() Chuck Lever
2016-11-09 19:05 ` [PATCH v1 08/14] xprtrdma: Squelch "max send, max recv" messages at connect time Chuck Lever
2016-11-09 19:06 ` [PATCH v1 09/14] xprtrdma: Shorten QP access error message Chuck Lever
2016-11-09 19:06 ` [PATCH v1 10/14] xprtrdma: Update dprintk in rpcrdma_count_chunks Chuck Lever
2016-11-09 19:06 ` [PATCH v1 11/14] xprtrdma: Relocate connection helper functions Chuck Lever
2016-11-09 19:06 ` Chuck Lever [this message]
2016-11-09 19:06 ` [PATCH v1 13/14] xprtrdma: Refactor FRMR invalidation Chuck Lever
2016-11-09 19:06 ` [PATCH v1 14/14] xprtrdma: Update documenting comment Chuck Lever
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161109190628.15007.67246.stgit@manet.1015granger.net \
--to=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).