mirror of
https://github.com/torvalds/linux.git
synced 2024-10-30 00:32:38 +00:00
drbd: Use ping-timeout when waiting for missing ack packets
When the node with the discard flag resolves write conflicts in dual-primary mode, it may determine that its peer has sent ack packets on the metadata socket which did not arrive, yet. Wait for the next ack with ping-timeout instead of a hard-coded 30 seconds. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
8ccf218e9f
commit
71b1c1eb9c
@ -1710,11 +1710,12 @@ static int drbd_wait_peer_seq(struct drbd_conf *mdev, const u32 packet_seq)
|
||||
}
|
||||
p_seq = mdev->peer_seq;
|
||||
spin_unlock(&mdev->peer_seq_lock);
|
||||
timeout = schedule_timeout(30*HZ);
|
||||
timeout = mdev->tconn->net_conf->ping_timeo*HZ/10;
|
||||
timeout = schedule_timeout(timeout);
|
||||
spin_lock(&mdev->peer_seq_lock);
|
||||
if (timeout == 0 && p_seq == mdev->peer_seq) {
|
||||
ret = -ETIMEDOUT;
|
||||
dev_err(DEV, "ASSERT FAILED waited 30 seconds for sequence update, forcing reconnect\n");
|
||||
dev_err(DEV, "Timed out waiting for missing ack packets; disconnecting\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user