afs: Fix server rotation's handling of fileserver probe failure
The server rotation algorithm just gives up if it fails to probe a
fileserver. Fix this by rotating to the next fileserver instead.
Fixes: d2ddc776a4
("afs: Overhaul volume and server record caching and fileserver rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
d4a96bec7a
commit
ec5a3b4b50
|
@ -369,8 +369,16 @@ use_server:
|
||||||
if (!test_bit(AFS_SERVER_FL_PROBED, &server->flags)) {
|
if (!test_bit(AFS_SERVER_FL_PROBED, &server->flags)) {
|
||||||
fc->ac.alist = afs_get_addrlist(alist);
|
fc->ac.alist = afs_get_addrlist(alist);
|
||||||
|
|
||||||
if (!afs_probe_fileserver(fc))
|
if (!afs_probe_fileserver(fc)) {
|
||||||
goto failed;
|
switch (fc->ac.error) {
|
||||||
|
case -ENOMEM:
|
||||||
|
case -ERESTARTSYS:
|
||||||
|
case -EINTR:
|
||||||
|
goto failed;
|
||||||
|
default:
|
||||||
|
goto next_server;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fc->ac.alist)
|
if (!fc->ac.alist)
|
||||||
|
|
Loading…
Reference in New Issue