]> www.infradead.org Git - users/jedix/linux-maple.git/commit
RDS: make sure not to loop forever inside rds_send_xmit
authorChris Mason <chris.mason@oracle.com>
Fri, 3 Feb 2012 16:07:41 +0000 (11:07 -0500)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 7 Jul 2015 23:41:29 +0000 (16:41 -0700)
commitab2ca254b3d3982df2e8790a1ef59530b086c547
tree8a6a8bc004685db36b32c562146ff218894e44cf
parentb7ca756ccba06bb63f5ba555f2b6ba2e01e70940
RDS: make sure not to loop forever inside rds_send_xmit

If a determined set of concurrent senders keep the send queue full,
we can loop forever insdie rds_send_xmit.  This fix has two parts.

First we are dropping out of the while(1) loop after we've processed a
large batch of messages.

Second we add a generation number that gets bumped each time the
xmit bit lock is acquired.  If someone else has jumped in and
made progress in the queue, we skip our goto restart.

Signed-off-by: Chris Mason <chris.mason@oracle.c.om>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Bang Nguyen <bang.nguyen@oracle.com>
net/rds/connection.c
net/rds/rds.h
net/rds/send.c