From: Chris Mason Date: Fri, 3 Feb 2012 16:09:49 +0000 (-0500) Subject: RDS: make sure rds_send_xmit doesn't loop forever X-Git-Tag: v4.1.12-92~319^2^2~2^2~30 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=df3a97c5a19d89f30d38c17f4ad43aeb73404339;p=users%2Fjedix%2Flinux-maple.git 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 --- 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: