From 41500c3e2a19ffcf40a7158fce1774de08e26ba2 Mon Sep 17 00:00:00 2001 From: Sowmini Varadhan Date: Thu, 15 Jun 2017 11:28:53 -0700 Subject: [PATCH] rds: tcp: remove cp_outgoing After commit 1a0e100fb2c9 ("RDS: TCP: Force every connection to be initiated by numerically smaller IP address") we no longer need the logic associated with cp_outgoing, so clean up usage of this field. Signed-off-by: Sowmini Varadhan Tested-by: Imanti Mendez Signed-off-by: David S. Miller --- net/rds/connection.c | 5 ----- net/rds/rds.h | 2 -- net/rds/tcp_connect.c | 1 - net/rds/tcp_listen.c | 19 ++++--------------- 4 files changed, 4 insertions(+), 23 deletions(-) diff --git a/net/rds/connection.c b/net/rds/connection.c index 6a5ebdea..382443b 100644 --- a/net/rds/connection.c +++ b/net/rds/connection.c @@ -124,11 +124,6 @@ static void __rds_conn_path_init(struct rds_connection *conn, cp->cp_conn = conn; atomic_set(&cp->cp_state, RDS_CONN_DOWN); cp->cp_send_gen = 0; - /* cp_outgoing is per-path. So we can only set it here - * for the single-path transports. - */ - if (!conn->c_trans->t_mp_capable) - cp->cp_outgoing = (is_outgoing ? 1 : 0); cp->cp_reconnect_jiffies = 0; INIT_DELAYED_WORK(&cp->cp_send_w, rds_send_worker); INIT_DELAYED_WORK(&cp->cp_recv_w, rds_recv_worker); diff --git a/net/rds/rds.h b/net/rds/rds.h index 82d38cc..aa183d6 100644 --- a/net/rds/rds.h +++ b/net/rds/rds.h @@ -125,8 +125,6 @@ struct rds_conn_path { unsigned int cp_unacked_packets; unsigned int cp_unacked_bytes; - unsigned int cp_outgoing:1, - cp_pad_to_32:31; unsigned int cp_index; }; diff --git a/net/rds/tcp_connect.c b/net/rds/tcp_connect.c index d6839d9..97db861 100644 --- a/net/rds/tcp_connect.c +++ b/net/rds/tcp_connect.c @@ -135,7 +135,6 @@ int rds_tcp_conn_path_connect(struct rds_conn_path *cp) ret = sock->ops->connect(sock, (struct sockaddr *)&dest, sizeof(dest), O_NONBLOCK); - cp->cp_outgoing = 1; rdsdebug("connect to address %pI4 returned %d\n", &conn->c_faddr, ret); if (ret == -EINPROGRESS) ret = 0; diff --git a/net/rds/tcp_listen.c b/net/rds/tcp_listen.c index 5076788..238ff5c 100644 --- a/net/rds/tcp_listen.c +++ b/net/rds/tcp_listen.c @@ -171,21 +171,10 @@ int rds_tcp_accept_one(struct socket *sock) if (conn_state != RDS_CONN_CONNECTING && conn_state != RDS_CONN_ERROR) goto rst_nsk; if (rs_tcp->t_sock) { - /* Need to resolve a duelling SYN between peers. - * We have an outstanding SYN to this peer, which may - * potentially have transitioned to the RDS_CONN_UP state, - * so we must quiesce any send threads before resetting - * c_transport_data. - */ - if (ntohl(inet->inet_saddr) < ntohl(inet->inet_daddr) || - !cp->cp_outgoing) { - goto rst_nsk; - } else { - rds_tcp_reset_callbacks(new_sock, cp); - cp->cp_outgoing = 0; - /* rds_connect_path_complete() marks RDS_CONN_UP */ - rds_connect_path_complete(cp, RDS_CONN_RESETTING); - } + /* Duelling SYN has been handled in rds_tcp_accept_one() */ + rds_tcp_reset_callbacks(new_sock, cp); + /* rds_connect_path_complete() marks RDS_CONN_UP */ + rds_connect_path_complete(cp, RDS_CONN_RESETTING); } else { rds_tcp_set_callbacks(new_sock, cp); rds_connect_path_complete(cp, RDS_CONN_CONNECTING); -- 2.7.4