diff options
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 3a36bc814e77..6876041fc3d8 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -2487,6 +2487,9 @@ static enum drbd_conns drbd_sync_handshake(struct drbd_conf *mdev, enum drbd_rol | |||
2487 | hg > 0 ? "source" : "target"); | 2487 | hg > 0 ? "source" : "target"); |
2488 | } | 2488 | } |
2489 | 2489 | ||
2490 | if (abs(hg) == 100) | ||
2491 | drbd_khelper(mdev, "initial-split-brain"); | ||
2492 | |||
2490 | if (hg == 100 || (hg == -100 && mdev->net_conf->always_asbp)) { | 2493 | if (hg == 100 || (hg == -100 && mdev->net_conf->always_asbp)) { |
2491 | int pcount = (mdev->state.role == R_PRIMARY) | 2494 | int pcount = (mdev->state.role == R_PRIMARY) |
2492 | + (peer_role == R_PRIMARY); | 2495 | + (peer_role == R_PRIMARY); |
@@ -2532,7 +2535,7 @@ static enum drbd_conns drbd_sync_handshake(struct drbd_conf *mdev, enum drbd_rol | |||
2532 | * after an attempted attach on a diskless node. | 2535 | * after an attempted attach on a diskless node. |
2533 | * We just refuse to attach -- well, we drop the "connection" | 2536 | * We just refuse to attach -- well, we drop the "connection" |
2534 | * to that disk, in a way... */ | 2537 | * to that disk, in a way... */ |
2535 | dev_alert(DEV, "Split-Brain detected, dropping connection!\n"); | 2538 | dev_alert(DEV, "Split-Brain detected but unresolved, dropping connection!\n"); |
2536 | drbd_khelper(mdev, "split-brain"); | 2539 | drbd_khelper(mdev, "split-brain"); |
2537 | return C_MASK; | 2540 | return C_MASK; |
2538 | } | 2541 | } |