diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-05-09 13:20:04 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-05-09 13:20:04 +0200 |
commit | 4096e645d85d575e7b6e699f470f5519c34fda5d (patch) | |
tree | 9cfb8e2c1a816e2f7142d20b79c578fdf69dd2f2 /net/rds/tcp_connect.c | |
parent | a0ca97b808c06793fd9dfb69243ce945c9fff501 (diff) | |
parent | 44549e8f5eea4e0a41b487b63e616cb089922b99 (diff) |
Merge 4.6-rc7 into staging-next
This fixes some merge issues with some iio drivers that were found in
linux-next.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/rds/tcp_connect.c')
-rw-r--r-- | net/rds/tcp_connect.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/rds/tcp_connect.c b/net/rds/tcp_connect.c index 5cb16875c460..49a3fcfed360 100644 --- a/net/rds/tcp_connect.c +++ b/net/rds/tcp_connect.c @@ -78,7 +78,14 @@ int rds_tcp_conn_connect(struct rds_connection *conn) struct socket *sock = NULL; struct sockaddr_in src, dest; int ret; + struct rds_tcp_connection *tc = conn->c_transport_data; + + mutex_lock(&tc->t_conn_lock); + if (rds_conn_up(conn)) { + mutex_unlock(&tc->t_conn_lock); + return 0; + } ret = sock_create_kern(rds_conn_net(conn), PF_INET, SOCK_STREAM, IPPROTO_TCP, &sock); if (ret < 0) @@ -120,6 +127,7 @@ int rds_tcp_conn_connect(struct rds_connection *conn) } out: + mutex_unlock(&tc->t_conn_lock); if (sock) sock_release(sock); return ret; |