Message ID | dd4baab053150f26c6fff124c4f4c9b417a9eb80.1490814967.git.sowmini.varadhan@oracle.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On 3/31/17 3:56 PM, Sowmini Varadhan wrote: > 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 <sowmini.varadhan@oracle.com> > --- Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
diff --git a/net/rds/threads.c b/net/rds/threads.c index e36e333..3e447d0 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);
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 <sowmini.varadhan@oracle.com> --- net/rds/threads.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)