]> git.baikalelectronics.ru Git - kernel.git/commit
drbd: fix resend/resubmit of frozen IO
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 25 Apr 2012 09:46:14 +0000 (11:46 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Wed, 9 May 2012 13:16:58 +0000 (15:16 +0200)
commit3e20450a4ca60a3fc4292799dddc89a733fd0f78
tree70bf9476e9667ec5afec09f5a2c8f4b9cc91e75c
parentab051cfeead7df78ed008a9f1086db76e9a74ff3
drbd: fix resend/resubmit of frozen IO

DRBD can freeze IO, due to fencing policy (fencing resource-and-stonith),
or because we lost access to data (on-no-data-accessible suspend-io).

Resuming from there (re-connect, or re-attach, or explicit admin
intervention) should "just work".

Unfortunately, if the re-attach/re-connect did not happen within
the timeout, since the commit
  drbd: Implemented real timeout checking for request processing time
if so configured, the request_timer_fn() would timeout and
detach/disconnect virtually immediately.

This change tracks the most recent attach and connect, and does not
timeout within <configured timeout interval> after attach/connect.

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