Lines Matching refs:server

14 static bool afs_vl_probe_done(struct afs_vlserver *server)  in afs_vl_probe_done()  argument
16 if (!atomic_dec_and_test(&server->probe_outstanding)) in afs_vl_probe_done()
19 wake_up_var(&server->probe_outstanding); in afs_vl_probe_done()
20 clear_bit_unlock(AFS_VLSERVER_FL_PROBING, &server->flags); in afs_vl_probe_done()
21 wake_up_bit(&server->flags, AFS_VLSERVER_FL_PROBING); in afs_vl_probe_done()
32 struct afs_vlserver *server = call->vlserver; in afs_vlserver_probe_result() local
40 _enter("%s,%u,%u,%d,%d", server->name, server_index, index, ret, call->abort_code); in afs_vlserver_probe_result()
42 spin_lock(&server->probe_lock); in afs_vlserver_probe_result()
46 server->probe.error = 0; in afs_vlserver_probe_result()
49 if (!server->probe.responded) { in afs_vlserver_probe_result()
50 server->probe.abort_code = call->abort_code; in afs_vlserver_probe_result()
51 server->probe.error = ret; in afs_vlserver_probe_result()
56 server->probe.local_failure = true; in afs_vlserver_probe_result()
71 if (!server->probe.responded && in afs_vlserver_probe_result()
72 (server->probe.error == 0 || in afs_vlserver_probe_result()
73 server->probe.error == -ETIMEDOUT || in afs_vlserver_probe_result()
74 server->probe.error == -ETIME)) in afs_vlserver_probe_result()
75 server->probe.error = ret; in afs_vlserver_probe_result()
85 server->probe.is_yfs = true; in afs_vlserver_probe_result()
86 set_bit(AFS_VLSERVER_FL_IS_YFS, &server->flags); in afs_vlserver_probe_result()
89 server->probe.not_yfs = true; in afs_vlserver_probe_result()
90 if (!server->probe.is_yfs) { in afs_vlserver_probe_result()
91 clear_bit(AFS_VLSERVER_FL_IS_YFS, &server->flags); in afs_vlserver_probe_result()
103 if (rtt < server->probe.rtt) { in afs_vlserver_probe_result()
104 server->probe.rtt = rtt; in afs_vlserver_probe_result()
110 server->probe.responded = true; in afs_vlserver_probe_result()
111 set_bit(AFS_VLSERVER_FL_PROBED, &server->flags); in afs_vlserver_probe_result()
113 spin_unlock(&server->probe_lock); in afs_vlserver_probe_result()
119 have_result |= afs_vl_probe_done(server); in afs_vlserver_probe_result()
121 server->probe.have_result = true; in afs_vlserver_probe_result()
122 wake_up_var(&server->probe.have_result); in afs_vlserver_probe_result()
123 wake_up_all(&server->probe_wq); in afs_vlserver_probe_result()
132 struct afs_vlserver *server, in afs_do_probe_vlserver() argument
143 _enter("%s", server->name); in afs_do_probe_vlserver()
145 read_lock(&server->lock); in afs_do_probe_vlserver()
146 ac.alist = rcu_dereference_protected(server->addresses, in afs_do_probe_vlserver()
147 lockdep_is_held(&server->lock)); in afs_do_probe_vlserver()
148 read_unlock(&server->lock); in afs_do_probe_vlserver()
150 atomic_set(&server->probe_outstanding, ac.alist->nr_addrs); in afs_do_probe_vlserver()
151 memset(&server->probe, 0, sizeof(server->probe)); in afs_do_probe_vlserver()
152 server->probe.rtt = UINT_MAX; in afs_do_probe_vlserver()
155 call = afs_vl_get_capabilities(net, &ac, key, server, in afs_do_probe_vlserver()
166 afs_vl_probe_done(server); in afs_do_probe_vlserver()
176 struct afs_vlserver *server; in afs_send_vl_probes() local
184 server = vllist->servers[i].server; in afs_send_vl_probes()
185 if (test_bit(AFS_VLSERVER_FL_PROBED, &server->flags)) in afs_send_vl_probes()
188 if (!test_and_set_bit_lock(AFS_VLSERVER_FL_PROBING, &server->flags) && in afs_send_vl_probes()
189 afs_do_probe_vlserver(net, server, key, i, &e)) in afs_send_vl_probes()
203 struct afs_vlserver *server; in afs_wait_for_vl_probes() local
213 server = vllist->servers[i].server; in afs_wait_for_vl_probes()
214 if (!test_bit(AFS_VLSERVER_FL_PROBING, &server->flags)) in afs_wait_for_vl_probes()
216 if (server->probe.responded) in afs_wait_for_vl_probes()
229 server = vllist->servers[i].server; in afs_wait_for_vl_probes()
231 add_wait_queue(&server->probe_wq, &waits[i]); in afs_wait_for_vl_probes()
241 server = vllist->servers[i].server; in afs_wait_for_vl_probes()
242 if (server->probe.responded) in afs_wait_for_vl_probes()
244 if (test_bit(AFS_VLSERVER_FL_PROBING, &server->flags)) in afs_wait_for_vl_probes()
259 server = vllist->servers[i].server; in afs_wait_for_vl_probes()
260 if (server->probe.responded && in afs_wait_for_vl_probes()
261 server->probe.rtt < rtt) { in afs_wait_for_vl_probes()
263 rtt = server->probe.rtt; in afs_wait_for_vl_probes()
266 remove_wait_queue(&server->probe_wq, &waits[i]); in afs_wait_for_vl_probes()