kernel-fxtec-pro1x/drivers/block/drbd
Lars Ellenberg f36af18c7b drbd: fix disconnect/reconnect loop, if ping-timeout == ping-int
If there is no replication traffic within the idle timeout
(ping-int seconds), DRBD will send a P_PING,
and adjust the timeout to ping-timeout.

If there is no P_PING_ACK received within this ping-timeout,
DRBD finally drops the connection, and tries to re-establish it.

To decide which timeout was active, we compared the current timeout
with the ping-timeout, and dropped the connection, if that was the case.

By default, ping-int is 10 seconds, ping-timeout is 500 ms.

Unfortunately, if you configure ping-timeout to be the same as ping-int,
expiry of the idle-timeout had been mistaken for a missing ping ack,
and caused an immediate reconnection attempt.

Fix:
Allow both timeouts to be equal, use a local variable
to store which timeout is active.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2011-05-24 10:03:30 +02:00
..
drbd_actlog.c Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_bitmap.c drbd: fix up merge error 2011-03-28 07:42:58 -07:00
drbd_int.h drbd: Fix for application IO with the on-io-error=pass-on policy 2011-05-24 09:59:49 +02:00
drbd_main.c drbd: Fix for application IO with the on-io-error=pass-on policy 2011-05-24 09:59:49 +02:00
drbd_nl.c Merge branch 'for-2.6.39/drivers' of git://git.kernel.dk/linux-2.6-block 2011-03-27 20:02:07 -07:00
drbd_proc.c drbd: allow petabyte storage on 64bit arch 2011-03-10 11:43:24 +01:00
drbd_receiver.c drbd: fix disconnect/reconnect loop, if ping-timeout == ping-int 2011-05-24 10:03:30 +02:00
drbd_req.c drbd: drop code present under #ifdef which is relevant to 2.6.28 and below 2011-03-10 11:48:21 +01:00
drbd_req.h drbd: Implemented real timeout checking for request processing time 2011-03-10 11:48:16 +01:00
drbd_strings.c drbd: Rename enum drbd_state_ret_codes to enum drbd_state_rv 2011-03-10 11:36:18 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: fix potential distributed deadlock 2011-05-24 10:02:41 +02:00
drbd_wrappers.h drbd: Get rid of unnecessary macros (2) 2011-03-10 11:36:15 +01:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: remove tracing bits 2009-10-01 21:17:58 +02:00