Files
linux/drivers/block
Philipp Reisner 1e86ac48af drbd: Bugfix for the connection behavior
If we get into the C_BROKEN_PIPE cstate once, the state engine set the
thi->t_state of the receiver thread to restarting.  But with the while loop
in drbdd_init() a new connection gets established. After the call into
drbdd() returns immediately since the thi->t_state is not RUNNING.  The
restart of drbd_init() then resets thi->t_state to RUNNING.

I.e. after entering C_BROKEN_PIPE once, the next successful established
connection gets wasted.

The two parts of the fix:
  * Do not cause the thread to restart if we detect the issue
    with the sockets while we are in C_WF_CONNECTION.

  * Make sure that all actions that would have set us to C_BROKEN_PIPE
    happen before the state change to C_WF_REPORT_PARAMS.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2012-05-09 15:15:46 +02:00
..
2012-01-03 22:54:07 -05:00
2012-01-14 15:07:24 -08:00
2011-08-08 11:40:15 +02:00
2012-03-28 18:30:03 +01:00
2012-03-22 10:47:50 -05:00
2011-12-12 12:42:12 +01:00
2009-03-26 21:15:27 +01:00
2011-12-10 19:52:46 +01:00
2012-03-28 18:30:03 +01:00
2008-10-21 07:48:11 -04:00
2012-01-05 08:34:29 +01:00