From: Chien-Hua Yen Date: Tue, 27 May 2014 19:35:25 +0000 (-0700) Subject: RDS: Use rds_local_wq for loopback connections in rds_conn_connect_if_down() X-Git-Tag: v4.1.12-92~293^2^2~31 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=50b92232deb0d9cb1b5491ce33252c6324511579;p=users%2Fjedix%2Flinux-maple.git RDS: Use rds_local_wq for loopback connections in rds_conn_connect_if_down() Orabug: 18892380 This patch extends commit 0715fe8 "RDS: add workqueue for local loopback connections" to rds_conn_connect_if_down() and rds_connect_complete(). Signed-off-by: Chien-Hua Yen Signed-off-by: Bang Nguyen Signed-off-by: Ajaykumar Hotchandani (cherry picked from commit 3209dc535f742c59530d5a5dfdd003b501967e88) --- diff --git a/net/rds/connection.c b/net/rds/connection.c index c973425cb354..b29d7754e5ae 100644 --- a/net/rds/connection.c +++ b/net/rds/connection.c @@ -656,8 +656,12 @@ EXPORT_SYMBOL_GPL(rds_conn_drop); void rds_conn_connect_if_down(struct rds_connection *conn) { if (rds_conn_state(conn) == RDS_CONN_DOWN && - !test_and_set_bit(RDS_RECONNECT_PENDING, &conn->c_flags)) - queue_delayed_work(rds_wq, &conn->c_conn_w, 0); + !test_and_set_bit(RDS_RECONNECT_PENDING, &conn->c_flags)) { + if (conn->c_loopback) + queue_delayed_work(rds_local_wq, &conn->c_conn_w, 0); + else + queue_delayed_work(rds_wq, &conn->c_conn_w, 0); + } } EXPORT_SYMBOL_GPL(rds_conn_connect_if_down); diff --git a/net/rds/threads.c b/net/rds/threads.c index 7ef1948b6734..41616b6260ec 100644 --- a/net/rds/threads.c +++ b/net/rds/threads.c @@ -85,7 +85,10 @@ void rds_connect_complete(struct rds_connection *conn) __func__, atomic_read(&conn->c_state)); atomic_set(&conn->c_state, RDS_CONN_ERROR); - queue_work(rds_wq, &conn->c_down_w); + if (conn->c_loopback) + queue_work(rds_local_wq, &conn->c_down_w); + else + queue_work(rds_wq, &conn->c_down_w); return; }