From a2aff7b5eb2584b8cb45820de025f786331eddc1 Mon Sep 17 00:00:00 2001 From: David Howells Date: Mon, 30 Oct 2023 16:40:57 +0000 Subject: [PATCH] afs: Don't skip server addresses for which we didn't get an RTT reading In the rotation algorithms for iterating over volume location servers and file servers, don't skip servers from which we got a valid response to a probe (either a reply DATA packet or an ABORT) even if we didn't manage to get an RTT reading. Signed-off-by: David Howells cc: Marc Dionne cc: linux-afs@lists.infradead.org --- fs/afs/rotate.c | 2 +- fs/afs/vl_rotate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c index 59aed7a6dd115..d420f073300b7 100644 --- a/fs/afs/rotate.c +++ b/fs/afs/rotate.c @@ -427,7 +427,7 @@ bool afs_select_fileserver(struct afs_operation *op) if (!test_bit(i, &op->untried) || !test_bit(AFS_SERVER_FL_RESPONDING, &s->flags)) continue; - if (s->probe.rtt < rtt) { + if (s->probe.rtt <= rtt) { op->index = i; rtt = s->probe.rtt; } diff --git a/fs/afs/vl_rotate.c b/fs/afs/vl_rotate.c index f8f255c966ae1..6aaa2e4733ec5 100644 --- a/fs/afs/vl_rotate.c +++ b/fs/afs/vl_rotate.c @@ -201,7 +201,7 @@ bool afs_select_vlserver(struct afs_vl_cursor *vc) if (!test_bit(i, &vc->untried) || !test_bit(AFS_VLSERVER_FL_RESPONDING, &s->flags)) continue; - if (s->probe.rtt < rtt) { + if (s->probe.rtt <= rtt) { vc->index = i; rtt = s->probe.rtt; }