aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/volume.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2018-10-19 19:57:59 -0400
committerDavid Howells <dhowells@redhat.com>2018-10-23 19:41:09 -0400
commit3bf0fb6f33dd545693da5e65f5b1b9b9f0bfc35e (patch)
treedf215e6a6ad11b6ac8158461144667e168591d28 /fs/afs/volume.c
parent18ac61853cc4e44eb30e125fc8344a3b25c7b6fe (diff)
afs: Probe multiple fileservers simultaneously
Send probes to all the unprobed fileservers in a fileserver list on all addresses simultaneously in an attempt to find out the fastest route whilst not getting stuck for 20s on any server or address that we don't get a reply from. This alleviates the problem whereby attempting to access a new server can take a long time because the rotation algorithm ends up rotating through all servers and addresses until it finds one that responds. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/volume.c')
-rw-r--r--fs/afs/volume.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index 7527c081726e..00975ed3640f 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -82,22 +82,6 @@ static struct afs_vldb_entry *afs_vl_lookup_vldb(struct afs_cell *cell,
82 return ERR_PTR(-ERESTARTSYS); 82 return ERR_PTR(-ERESTARTSYS);
83 83
84 while (afs_select_vlserver(&vc)) { 84 while (afs_select_vlserver(&vc)) {
85 if (!test_bit(vc.ac.index, &vc.ac.alist->probed)) {
86 ret = afs_vl_get_capabilities(cell->net, &vc.ac, key);
87 switch (ret) {
88 case VL_SERVICE:
89 clear_bit(vc.ac.index, &vc.ac.alist->yfs);
90 set_bit(vc.ac.index, &vc.ac.alist->probed);
91 vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
92 break;
93 case YFS_VL_SERVICE:
94 set_bit(vc.ac.index, &vc.ac.alist->yfs);
95 set_bit(vc.ac.index, &vc.ac.alist->probed);
96 vc.ac.alist->addrs[vc.ac.index].srx_service = ret;
97 break;
98 }
99 }
100
101 vldb = afs_vl_get_entry_by_name_u(&vc, volname, volnamesz); 85 vldb = afs_vl_get_entry_by_name_u(&vc, volname, volnamesz);
102 } 86 }
103 87