aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/tcp_connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/tcp_connect.c')
-rw-r--r--net/rds/tcp_connect.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/rds/tcp_connect.c b/net/rds/tcp_connect.c
index 973109c7b8e8..5cb16875c460 100644
--- a/net/rds/tcp_connect.c
+++ b/net/rds/tcp_connect.c
@@ -79,7 +79,8 @@ int rds_tcp_conn_connect(struct rds_connection *conn)
79 struct sockaddr_in src, dest; 79 struct sockaddr_in src, dest;
80 int ret; 80 int ret;
81 81
82 ret = sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP, &sock); 82 ret = sock_create_kern(rds_conn_net(conn), PF_INET,
83 SOCK_STREAM, IPPROTO_TCP, &sock);
83 if (ret < 0) 84 if (ret < 0)
84 goto out; 85 goto out;
85 86
@@ -111,10 +112,12 @@ int rds_tcp_conn_connect(struct rds_connection *conn)
111 rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret); 112 rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret);
112 if (ret == -EINPROGRESS) 113 if (ret == -EINPROGRESS)
113 ret = 0; 114 ret = 0;
114 if (ret == 0) 115 if (ret == 0) {
116 rds_tcp_keepalive(sock);
115 sock = NULL; 117 sock = NULL;
116 else 118 } else {
117 rds_tcp_restore_callbacks(sock, conn->c_transport_data); 119 rds_tcp_restore_callbacks(sock, conn->c_transport_data);
120 }
118 121
119out: 122out:
120 if (sock) 123 if (sock)