From df3a97c5a19d89f30d38c17f4ad43aeb73404339 Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Fri, 3 Feb 2012 11:09:49 -0500 Subject: [PATCH] RDS: make sure rds_send_xmit doesn't loop forever rds_send_xmit can get stuck doing work on behalf of other senders. This breaks out if we've been working too long. The work queue will get kicked to finish off any other requests if our current process gives up. Signed-off-by: Chris Mason Signed-off-by: Bang Nguyen --- net/rds/send.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/rds/send.c b/net/rds/send.c index f69d269dac2e..ff7428cc9ac1 100644 --- a/net/rds/send.c +++ b/net/rds/send.c @@ -428,7 +428,9 @@ over_batch: !list_empty(&conn->c_send_queue)) && send_gen == conn->c_send_gen) { rds_stats_inc(s_send_lock_queue_raced); - goto restart; + if (batch_count < 1024) + goto restart; + queue_delayed_work(rds_wq, &conn->c_send_w, 1); } } out: -- 2.49.0