From: Sowmini Varadhan Date: Fri, 31 Mar 2017 22:56:31 +0000 (-0700) Subject: rds: tcp: canonical connection order for all paths with index > 0 X-Git-Tag: v5.15~11346^3~278^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=087d975353d0cc9b7536d6ef46cd9303fceb2e17;p=platform%2Fkernel%2Flinux-starfive.git rds: tcp: canonical connection order for all paths with index > 0 The rds_connect_worker() has a bug in the check that enforces the canonical connection order described in the comments of rds_tcp_state_change(). The intention is to make sure that all the multipath connections are always initiated by the smaller IP address via rds_start_mprds. To achieve this, rds_connection_worker should check that cp_index > 0. Signed-off-by: Sowmini Varadhan Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller --- diff --git a/net/rds/threads.c b/net/rds/threads.c index e36e333..3e447d05 100644 --- a/net/rds/threads.c +++ b/net/rds/threads.c @@ -156,7 +156,7 @@ void rds_connect_worker(struct work_struct *work) struct rds_connection *conn = cp->cp_conn; int ret; - if (cp->cp_index > 1 && cp->cp_conn->c_laddr > cp->cp_conn->c_faddr) + if (cp->cp_index > 0 && cp->cp_conn->c_laddr > cp->cp_conn->c_faddr) return; clear_bit(RDS_RECONNECT_PENDING, &cp->cp_flags); ret = rds_conn_path_transition(cp, RDS_CONN_DOWN, RDS_CONN_CONNECTING);