Files
linux/net
Neil Brown 2980731811 SUNRPC: never enqueue a ->rq_cong request on ->sending
If the sending queue has a task without ->rq_cong set at the front,
and then a number of tasks with ->rq_cong set such that they use
the entire congestion window, then the queue deadlocks.  The first
entry cannot be processed until later entries complete.

This scenario has been seen with a client using UDP to access a server,
and the network connection breaking for a period of time - it doesn't
recover.

It never really makes sense for an ->rq_cong request to be on the ->sending
queue, but it can happen when a request is being retried, and finds
the transport if locked (XPRT_LOCKED).  In this case we simple call
__xprt_put_cong() and the deadlock goes away.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2015-06-16 11:13:21 -04:00
..
2015-03-02 16:43:41 -05:00
2015-05-22 16:23:56 -04:00
2015-03-06 21:50:02 -05:00
2015-03-31 13:58:35 -04:00
2015-03-02 16:43:41 -05:00
2015-04-13 16:35:16 -04:00
2015-03-02 16:43:41 -05:00
2015-04-11 15:53:35 -04:00
2015-04-15 15:06:56 -04:00