OSDN Git Service

svcrdma: Displayed remote IP address should match stored address
authorChuck Lever <chuck.lever@oracle.com>
Sat, 2 May 2020 14:42:47 +0000 (10:42 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 18 May 2020 14:21:22 +0000 (10:21 -0400)
Clean up: After commit 1e091c3bbf51 ("svcrdma: Ignore source port
when computing DRC hash"), the IP address stored in xpt_remote
always has a port number of zero. Thus, there's no need to display
the port number when displaying the IP address of a remote NFS/RDMA
client.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/xprtrdma/svc_rdma_transport.c

index ea54785..0a11252 100644 (file)
@@ -211,7 +211,12 @@ static void handle_connect_req(struct rdma_cm_id *new_cma_id,
        newxprt->sc_ord = param->initiator_depth;
 
        sa = (struct sockaddr *)&newxprt->sc_cm_id->route.addr.dst_addr;
-       svc_xprt_set_remote(&newxprt->sc_xprt, sa, svc_addr_len(sa));
+       newxprt->sc_xprt.xpt_remotelen = svc_addr_len(sa);
+       memcpy(&newxprt->sc_xprt.xpt_remote, sa,
+              newxprt->sc_xprt.xpt_remotelen);
+       snprintf(newxprt->sc_xprt.xpt_remotebuf,
+                sizeof(newxprt->sc_xprt.xpt_remotebuf) - 1, "%pISc", sa);
+
        /* The remote port is arbitrary and not under the control of the
         * client ULP. Set it to a fixed value so that the DRC continues
         * to be effective after a reconnect.