Merge tag 'v4.3-rc3' into next
[firefly-linux-kernel-4.4.55.git] / net / rds / tcp_connect.c
index 973109c7b8e86f21bec783eb9e4e118e6e8ebb8b..5cb16875c4603dba71c733de6600ada40e39cffc 100644 (file)
@@ -79,7 +79,8 @@ int rds_tcp_conn_connect(struct rds_connection *conn)
        struct sockaddr_in src, dest;
        int ret;
 
-       ret = sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP, &sock);
+       ret = sock_create_kern(rds_conn_net(conn), PF_INET,
+                              SOCK_STREAM, IPPROTO_TCP, &sock);
        if (ret < 0)
                goto out;
 
@@ -111,10 +112,12 @@ int rds_tcp_conn_connect(struct rds_connection *conn)
        rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret);
        if (ret == -EINPROGRESS)
                ret = 0;
-       if (ret == 0)
+       if (ret == 0) {
+               rds_tcp_keepalive(sock);
                sock = NULL;
-       else
+       } else {
                rds_tcp_restore_callbacks(sock, conn->c_transport_data);
+       }
 
 out:
        if (sock)