drbd: Avoid NetworkFailure state during disconnect
authorPhilipp Reisner <philipp.reisner@linbit.com>
Wed, 8 Aug 2012 19:19:09 +0000 (21:19 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Fri, 9 Nov 2012 13:08:18 +0000 (14:08 +0100)
commitb66623e33efbbf55717df7bfc49882371118b866
tree3f345827c8fab3b4aa8f2b7cf7bd760c704483af
parent39a1aa7f49dc8eae5c8d3a4bf759eb7abeabe6c0
drbd: Avoid NetworkFailure state during disconnect

Disconnecting is a cluster wide state change. In case the peer node agrees
to the state transition, it sends back the fact on the meta-data connection
and closes both sockets.

In case the node node that initiated the state transfer sees the closing
action on the data-socket, before the P_STATE_CHG_REPLY packet, it was
going into one of the network failure states.

At least with the fencing option set to something else thatn "dont-care",
the unclean shutdown of the connection causes a short IO freeze or
a fence operation.

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_receiver.c
drivers/block/drbd/drbd_state.c