forked from Minki/linux
drbd: clear CRASHED_PRIMARY only after successful resync
If we lost a disk during the first resync after primary crash, we could have prematurely cleared the CRASHED_PRIMARY flag. Testing on C_CONNECTED is not what we meant there, but testing for both peers to become D_UP_TO_DATE. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
506afb6248
commit
2f2abeae3c
@ -1238,7 +1238,8 @@ static void after_state_ch(struct drbd_device *device, union drbd_state os,
|
||||
sib.os = os;
|
||||
sib.ns = ns;
|
||||
|
||||
if (os.conn != C_CONNECTED && ns.conn == C_CONNECTED) {
|
||||
if ((os.disk != D_UP_TO_DATE || os.pdsk != D_UP_TO_DATE)
|
||||
&& (ns.disk == D_UP_TO_DATE && ns.pdsk == D_UP_TO_DATE)) {
|
||||
clear_bit(CRASHED_PRIMARY, &device->flags);
|
||||
if (device->p_uuid)
|
||||
device->p_uuid[UI_FLAGS] &= ~((u64)2);
|
||||
|
Loading…
Reference in New Issue
Block a user