drbd: if the replication link breaks during handshake, keep retrying
authorLars Ellenberg <lars.ellenberg@linbit.com>
Mon, 5 Nov 2012 10:54:30 +0000 (11:54 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Fri, 9 Nov 2012 13:22:19 +0000 (14:22 +0100)
commited635cb0674d6e4303d1a2e27d9e6e80b451a338
treef540786331a69a1d6d378a2a64a0a79cd2bcdfff
parent063eacf88cc1394ece125d106c05cba1ca03aa3d
drbd: if the replication link breaks during handshake, keep retrying

The 8.3.12 commit drbd: Bugfix for the connection behavior fixes a
"wasted established connection", if a former connection attempt failed
during its early stages.

However it opened a window for a regression, if a connection attempt
fails during its last stages.  The result was a terminated receiver
thread, that left behind the supposedly transient "C_UNCONNECTED" state.
Any later requests to change the connection state fail, as they wait for
the connection state to "stabilize".

Fix: short circuit and keep retrying to restablish a new connection,
if we don't reach C_WF_REPORT_PARAMS.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_receiver.c