summaryrefslogtreecommitdiffstats
path: root/net/rds/send.c
diff options
context:
space:
mode:
authorsantosh.shilimkar@oracle.com <santosh.shilimkar@oracle.com>2015-08-23 00:45:27 +0200
committerDavid S. Miller <davem@davemloft.net>2015-08-25 22:35:30 +0200
commit0c484240210a8c835a216dbca6f1d690e4094a7c (patch)
treef52e60def14455dcc5f1728210be3e67f25524f3 /net/rds/send.c
parentRDS: make sure we post recv buffers (diff)
downloadlinux-0c484240210a8c835a216dbca6f1d690e4094a7c.tar.xz
linux-0c484240210a8c835a216dbca6f1d690e4094a7c.zip
RDS: check for congestion updates during rds_send_xmit
Ensure we don't keep sending the data if the link is congested. Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com> Signed-off-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds/send.c')
-rw-r--r--net/rds/send.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rds/send.c b/net/rds/send.c
index 2581b8e3dbe7..dd901c324edf 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -411,7 +411,8 @@ over_batch:
*/
if (ret == 0) {
smp_mb();
- if (!list_empty(&conn->c_send_queue) &&
+ if ((test_bit(0, &conn->c_map_queued) ||
+ !list_empty(&conn->c_send_queue)) &&
send_gen == conn->c_send_gen) {
rds_stats_inc(s_send_lock_queue_raced);
goto restart;