drbd: Delay/reject other state changes while establishing a connection
authorPhilipp Reisner <philipp.reisner@linbit.com>
Mon, 26 Mar 2012 14:47:11 +0000 (16:47 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Wed, 9 May 2012 13:16:55 +0000 (15:16 +0200)
commit197296ffed71b7d5056d8618a07fec145b040303
tree7ee407b7f0536fb2cf7911ab0d7e48acce81cd4e
parent46385c84acd6654d3a38c9c7af1921dbded74aa2
drbd: Delay/reject other state changes while establishing a connection

Changes to the role and disk state should be delayed or rejected
while we establish a connection.

This is necessary, since the peer will base its resync decision
on the UUIDs and the state we sent in the drbd_connect() function.

The most prominent example for this race is becoming primary after
sending state and UUIDs and before the state changes to C_WF_CONNECTION.

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_nl.c
drivers/block/drbd/drbd_receiver.c