From: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH v1 01/12] xprtrdma: Make xprt_setup_rdma() agnostic to family of server address
Date: Thu, 09 Jul 2015 16:41:50 -0400 [thread overview]
Message-ID: <20150709204149.26247.84398.stgit@manet.1015granger.net> (raw)
In-Reply-To: <20150709203242.26247.4848.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
In particular, recognize when an IPv6 connection is bound.
Signed-off-by: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
---
net/sunrpc/xprtrdma/transport.c | 28 +++++++++++-----------------
1 file changed, 11 insertions(+), 17 deletions(-)
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
index 680f888..d737300 100644
--- a/net/sunrpc/xprtrdma/transport.c
+++ b/net/sunrpc/xprtrdma/transport.c
@@ -175,10 +175,8 @@ xprt_rdma_format_addresses6(struct rpc_xprt *xprt, struct sockaddr *sap)
}
static void
-xprt_rdma_format_addresses(struct rpc_xprt *xprt)
+xprt_rdma_format_addresses(struct rpc_xprt *xprt, struct sockaddr *sap)
{
- struct sockaddr *sap = (struct sockaddr *)
- &rpcx_to_rdmad(xprt).addr;
char buf[128];
switch (sap->sa_family) {
@@ -302,7 +300,7 @@ xprt_setup_rdma(struct xprt_create *args)
struct rpc_xprt *xprt;
struct rpcrdma_xprt *new_xprt;
struct rpcrdma_ep *new_ep;
- struct sockaddr_in *sin;
+ struct sockaddr *sap;
int rc;
if (args->addrlen > sizeof(xprt->addr)) {
@@ -333,26 +331,20 @@ xprt_setup_rdma(struct xprt_create *args)
* Set up RDMA-specific connect data.
*/
- /* Put server RDMA address in local cdata */
- memcpy(&cdata.addr, args->dstaddr, args->addrlen);
+ sap = (struct sockaddr *)&cdata.addr;
+ memcpy(sap, args->dstaddr, args->addrlen);
/* Ensure xprt->addr holds valid server TCP (not RDMA)
* address, for any side protocols which peek at it */
xprt->prot = IPPROTO_TCP;
xprt->addrlen = args->addrlen;
- memcpy(&xprt->addr, &cdata.addr, xprt->addrlen);
+ memcpy(&xprt->addr, sap, xprt->addrlen);
- sin = (struct sockaddr_in *)&cdata.addr;
- if (ntohs(sin->sin_port) != 0)
+ if (rpc_get_port(sap))
xprt_set_bound(xprt);
- dprintk("RPC: %s: %pI4:%u\n",
- __func__, &sin->sin_addr.s_addr, ntohs(sin->sin_port));
-
- /* Set max requests */
cdata.max_requests = xprt->max_reqs;
- /* Set some length limits */
cdata.rsize = RPCRDMA_MAX_SEGS * PAGE_SIZE; /* RDMA write max */
cdata.wsize = RPCRDMA_MAX_SEGS * PAGE_SIZE; /* RDMA read max */
@@ -375,8 +367,7 @@ xprt_setup_rdma(struct xprt_create *args)
new_xprt = rpcx_to_rdmax(xprt);
- rc = rpcrdma_ia_open(new_xprt, (struct sockaddr *) &cdata.addr,
- xprt_rdma_memreg_strategy);
+ rc = rpcrdma_ia_open(new_xprt, sap, xprt_rdma_memreg_strategy);
if (rc)
goto out1;
@@ -409,7 +400,7 @@ xprt_setup_rdma(struct xprt_create *args)
INIT_DELAYED_WORK(&new_xprt->rx_connect_worker,
xprt_rdma_connect_worker);
- xprt_rdma_format_addresses(xprt);
+ xprt_rdma_format_addresses(xprt, sap);
xprt->max_payload = new_xprt->rx_ia.ri_ops->ro_maxpages(new_xprt);
if (xprt->max_payload == 0)
goto out4;
@@ -420,6 +411,9 @@ xprt_setup_rdma(struct xprt_create *args)
if (!try_module_get(THIS_MODULE))
goto out4;
+ dprintk("RPC: %s: %s:%s\n", __func__,
+ xprt->address_strings[RPC_DISPLAY_ADDR],
+ xprt->address_strings[RPC_DISPLAY_PORT]);
return xprt;
out4:
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-07-09 20:41 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-09 20:41 [PATCH v1 00/12] NFS/RDMA client side for Linux 4.3 Chuck Lever
[not found] ` <20150709203242.26247.4848.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-09 20:41 ` Chuck Lever [this message]
2015-07-09 20:41 ` [PATCH v1 02/12] xprtrdma: Raise maximum payload size to one megabyte Chuck Lever
[not found] ` <20150709204159.26247.44592.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 10:25 ` Devesh Sharma
2015-07-10 19:21 ` Anna Schumaker
[not found] ` <55A01B56.2020107-ZwjVKphTwtPQT0dZR+AlfA@public.gmane.org>
2015-07-10 19:33 ` Chuck Lever
[not found] ` <F9717330-F362-477B-915D-D6AAE7B5DDDB-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-07-10 19:41 ` Anna Schumaker
2015-07-12 14:31 ` Sagi Grimberg
2015-07-09 20:42 ` [PATCH v1 03/12] xprtrdma: Increase default credit limit Chuck Lever
[not found] ` <20150709204208.26247.52073.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 10:45 ` Devesh Sharma
[not found] ` <CANjDDBiMDM5VP5ev3LFfapX-5amqukH=dJdaEZVcZc9SSP2CCg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-10 14:33 ` Chuck Lever
[not found] ` <B6E6A65D-DE61-4A95-91D7-1E8A5132F7EE-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-07-10 14:47 ` Devesh Sharma
2015-07-12 14:31 ` Sagi Grimberg
2015-07-09 20:42 ` [PATCH v1 04/12] xprtrdma: Remove last ib_reg_phys_mr() call site Chuck Lever
[not found] ` <20150709204218.26247.67243.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 10:52 ` Devesh Sharma
2015-07-11 10:34 ` Christoph Hellwig
[not found] ` <20150711103428.GD14741-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2015-07-11 18:50 ` Chuck Lever
[not found] ` <682604AF-955A-44F8-86F9-EB7D403CABFF-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-07-12 7:58 ` Christoph Hellwig
2015-07-12 14:31 ` Sagi Grimberg
2015-07-09 20:42 ` [PATCH v1 05/12] xprtrdma: Account for RPC/RDMA header size when deciding to inline Chuck Lever
[not found] ` <20150709204227.26247.51111.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 10:55 ` Devesh Sharma
2015-07-10 20:08 ` Anna Schumaker
[not found] ` <55A02650.1050809-ZwjVKphTwtPQT0dZR+AlfA@public.gmane.org>
2015-07-10 20:28 ` Chuck Lever
2015-07-12 14:37 ` Sagi Grimberg
[not found] ` <55A27B9D.5010002-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-12 17:52 ` Chuck Lever
2015-07-09 20:42 ` [PATCH v1 06/12] xprtrdma: Always provide a write list when sending NFS READ Chuck Lever
[not found] ` <20150709204237.26247.297.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 11:08 ` Devesh Sharma
2015-07-12 14:42 ` Sagi Grimberg
2015-07-09 20:42 ` [PATCH v1 07/12] xprtrdma: Don't provide a reply chunk when expecting a short reply Chuck Lever
[not found] ` <20150709204246.26247.10367.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-12 14:58 ` Sagi Grimberg
[not found] ` <55A2809C.7020106-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-07-12 18:38 ` Chuck Lever
[not found] ` <2EB8EA33-9345-4D18-8BE1-39C4EB2658E2-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-07-14 9:54 ` Sagi Grimberg
2015-07-09 20:42 ` [PATCH v1 08/12] xprtrdma: Fix XDR tail buffer marshalling Chuck Lever
2015-07-09 20:43 ` [PATCH v1 09/12] xprtrdma: Prepare rpcrdma_ep_post() for RDMA_NOMSG calls Chuck Lever
[not found] ` <20150709204305.26247.39173.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-10 11:29 ` Devesh Sharma
[not found] ` <CANjDDBh38PrxGgWGuKYCYcbjqY9ELrpkGqaRZ_ueKfD7FEQP8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-10 12:58 ` Tom Talpey
[not found] ` <559FC17A.7060502-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-07-10 14:11 ` Devesh Sharma
[not found] ` <CANjDDBipaXMO7Z5wirG127E9kQ0aHdWJ1s6ZM21th5RWLNh-4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-10 14:53 ` Chuck Lever
[not found] ` <F5F5CAC4-866E-4BCA-8094-908CE9ED3B4B-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2015-07-10 22:44 ` Jason Gunthorpe
2015-07-10 20:43 ` Anna Schumaker
[not found] ` <55A02E73.7000902-ZwjVKphTwtPQT0dZR+AlfA@public.gmane.org>
2015-07-10 20:52 ` Chuck Lever
2015-07-09 20:43 ` [PATCH v1 10/12] xprtrdma: Fix large NFS SYMLINK calls Chuck Lever
[not found] ` <20150709204315.26247.47851.stgit-FYjufvaPoItvLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2015-07-14 16:01 ` Anna Schumaker
[not found] ` <55A53259.8090606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-07-14 19:09 ` Chuck Lever
2015-07-09 20:43 ` [PATCH v1 11/12] xprtrdma: Clean up xprt_rdma_print_stats() Chuck Lever
2015-07-09 20:43 ` [PATCH v1 12/12] xprtrdma: Count RDMA_NOMSG type calls 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=20150709204149.26247.84398.stgit@manet.1015granger.net \
--to=chuck.lever-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
--cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.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