SUNRPC: Use "sockaddr_storage" for storing RPC client's remote peer address
[GitHub/moto-9609/android_kernel_motorola_exynos9610.git] / net / sunrpc / xprt.c
index e239ef985ef743c6a906e7315d342230b0842b8c..4987517cc74bb9a10668bc92442c0e88d969d969 100644 (file)
@@ -896,7 +896,8 @@ static struct rpc_xprt *xprt_setup(int proto, struct sockaddr_in *ap, struct rpc
        if ((xprt = kzalloc(sizeof(struct rpc_xprt), GFP_KERNEL)) == NULL)
                return ERR_PTR(-ENOMEM);
 
-       xprt->addr = *ap;
+       memcpy(&xprt->addr, ap, sizeof(*ap));
+       xprt->addrlen = sizeof(*ap);
 
        switch (proto) {
        case IPPROTO_UDP:
@@ -928,6 +929,7 @@ static struct rpc_xprt *xprt_setup(int proto, struct sockaddr_in *ap, struct rpc
        xprt->last_used = jiffies;
        xprt->cwnd = RPC_INITCWND;
 
+       rpc_init_wait_queue(&xprt->binding, "xprt_binding");
        rpc_init_wait_queue(&xprt->pending, "xprt_pending");
        rpc_init_wait_queue(&xprt->sending, "xprt_sending");
        rpc_init_wait_queue(&xprt->resend, "xprt_resend");