diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c index 4a26d51b296829275c34132e6c34f1cd45c6d6f2..84584dcced72367e4364668e430fdce893a65f7e 100644 --- a/fs/afs/rotate.c +++ b/fs/afs/rotate.c @@ -369,8 +369,16 @@ bool afs_select_fileserver(struct afs_fs_cursor *fc) if (!test_bit(AFS_SERVER_FL_PROBED, &server->flags)) { fc->ac.alist = afs_get_addrlist(alist); - if (!afs_probe_fileserver(fc)) - goto failed; + if (!afs_probe_fileserver(fc)) { + switch (fc->ac.error) { + case -ENOMEM: + case -ERESTARTSYS: + case -EINTR: + goto failed; + default: + goto next_server; + } + } } if (!fc->ac.alist)