diff options
Diffstat (limited to 'net/rds/tcp_connect.c')
-rw-r--r-- | net/rds/tcp_connect.c | 9 |
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 | ||
119 | out: | 122 | out: |
120 | if (sock) | 123 | if (sock) |