drbd: Delay/reject other state changes while establishing a connection
authorPhilipp Reisner <philipp.reisner@linbit.com>
Fri, 6 Apr 2012 10:07:34 +0000 (12:07 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 8 Nov 2012 15:58:26 +0000 (16:58 +0100)
commita1096a6e9da7885ec9e11d93aa459685a33fa4d9
tree36ee9aba8823ed51b0c71176df5f2b891ba0c06a
parent27eb13e99b515c52ba5a151a1acce6afb8a9b2b6
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_nl.c
drivers/block/drbd/drbd_receiver.c
drivers/block/drbd/drbd_state.c