drbd: Fix an connection drop issue after enabling allow-two-primaries
authorPhilipp Reisner <philipp.reisner@linbit.com>
Wed, 23 Oct 2013 08:59:16 +0000 (10:59 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 8 Nov 2013 16:10:28 +0000 (09:10 -0700)
commitb874d231e115af9b2c4a7ed1a4c5ae2db8a21aaf
treed1af0ee989ce07385e59a8f4c9848ec3505a8517
parent69babf05cbe909a9a520b39772655f88b407f257
drbd: Fix an connection drop issue after enabling allow-two-primaries

Since drbd-8.4.0 it is possible to change the allow-two-primaries
network option while the connection is established.

The sequence code used to partially order packets from the
data socket with packets from the meta-data socket, still assued
that the allow-two-primaries option is constant while the
connection is established.

I.e.
On a node that has the RESOLVE_CONFLICTS bits set, after enabling
allow-two-primaries, when receiving the next data packet it timed out
while waiting for the necessary packets on the data socket to arrive
(wait_for_and_update_peer_seq() function).

Fixed that by always tracking the sequence number, but only waiting
for it if allow-two-primaries is set.

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