Răsfoiți Sursa

RDS: Do not send congestion updates to loopback connections

This issue was discovered by HP's Pradeep and fixed in OFED
1.3, but not fixed in later versions, since the fix's implementation
was not immediately applyable to the later code. This patch should
do the trick for 1.4+ codebases.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Andy Grover 15 ani în urmă
părinte
comite
0514f8a9c0
1 a modificat fișierele cu 2 adăugiri și 0 ștergeri
  1. 2 0
      net/rds/cong.c

+ 2 - 0
net/rds/cong.c

@@ -218,6 +218,8 @@ void rds_cong_queue_updates(struct rds_cong_map *map)
 	spin_lock_irqsave(&rds_cong_lock, flags);
 	spin_lock_irqsave(&rds_cong_lock, flags);
 
 
 	list_for_each_entry(conn, &map->m_conn_list, c_map_item) {
 	list_for_each_entry(conn, &map->m_conn_list, c_map_item) {
+		if (conn->c_loopback)
+			continue;
 		if (!test_and_set_bit(0, &conn->c_map_queued)) {
 		if (!test_and_set_bit(0, &conn->c_map_queued)) {
 			rds_stats_inc(s_cong_update_queued);
 			rds_stats_inc(s_cong_update_queued);
 			queue_delayed_work(rds_wq, &conn->c_send_w, 0);
 			queue_delayed_work(rds_wq, &conn->c_send_w, 0);