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.
Orabug:
26241322
(Cherry-pick of upstream
087d975353d0cc9b7536d6ef46cd9303fceb2e17)
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
int ret;
bool is_tcp = conn->c_trans->t_type == RDS_TRANS_TCP;
- if (is_tcp && cp->cp_index > 1 &&
+ if (is_tcp && cp->cp_index > 0 &&
cp->cp_conn->c_laddr > cp->cp_conn->c_faddr)
return;
clear_bit(RDS_RECONNECT_PENDING, &cp->cp_flags);