Lines Matching refs:server

14 static bool afs_fs_probe_done(struct afs_server *server)  in afs_fs_probe_done()  argument
16 if (!atomic_dec_and_test(&server->probe_outstanding)) in afs_fs_probe_done()
19 wake_up_var(&server->probe_outstanding); in afs_fs_probe_done()
20 clear_bit_unlock(AFS_SERVER_FL_PROBING, &server->flags); in afs_fs_probe_done()
21 wake_up_bit(&server->flags, AFS_SERVER_FL_PROBING); in afs_fs_probe_done()
32 struct afs_server *server = call->server; in afs_fileserver_probe_result() local
40 _enter("%pU,%u", &server->uuid, index); in afs_fileserver_probe_result()
42 spin_lock(&server->probe_lock); in afs_fileserver_probe_result()
46 server->probe.error = 0; in afs_fileserver_probe_result()
49 if (!server->probe.responded) { in afs_fileserver_probe_result()
50 server->probe.abort_code = call->abort_code; in afs_fileserver_probe_result()
51 server->probe.error = ret; in afs_fileserver_probe_result()
56 server->probe.local_failure = true; in afs_fileserver_probe_result()
71 if (!server->probe.responded && in afs_fileserver_probe_result()
72 (server->probe.error == 0 || in afs_fileserver_probe_result()
73 server->probe.error == -ETIMEDOUT || in afs_fileserver_probe_result()
74 server->probe.error == -ETIME)) in afs_fileserver_probe_result()
75 server->probe.error = ret; in afs_fileserver_probe_result()
85 server->probe.is_yfs = true; in afs_fileserver_probe_result()
86 set_bit(AFS_SERVER_FL_IS_YFS, &server->flags); in afs_fileserver_probe_result()
89 server->probe.not_yfs = true; in afs_fileserver_probe_result()
90 if (!server->probe.is_yfs) { in afs_fileserver_probe_result()
91 clear_bit(AFS_SERVER_FL_IS_YFS, &server->flags); in afs_fileserver_probe_result()
103 if (rtt < server->probe.rtt) { in afs_fileserver_probe_result()
104 server->probe.rtt = rtt; in afs_fileserver_probe_result()
110 server->probe.responded = true; in afs_fileserver_probe_result()
111 set_bit(AFS_SERVER_FL_PROBED, &server->flags); in afs_fileserver_probe_result()
113 spin_unlock(&server->probe_lock); in afs_fileserver_probe_result()
119 have_result |= afs_fs_probe_done(server); in afs_fileserver_probe_result()
121 server->probe.have_result = true; in afs_fileserver_probe_result()
122 wake_up_var(&server->probe.have_result); in afs_fileserver_probe_result()
123 wake_up_all(&server->probe_wq); in afs_fileserver_probe_result()
132 struct afs_server *server, in afs_do_probe_fileserver() argument
143 _enter("%pU", &server->uuid); in afs_do_probe_fileserver()
145 read_lock(&server->fs_lock); in afs_do_probe_fileserver()
146 ac.alist = rcu_dereference_protected(server->addresses, in afs_do_probe_fileserver()
147 lockdep_is_held(&server->fs_lock)); in afs_do_probe_fileserver()
148 read_unlock(&server->fs_lock); in afs_do_probe_fileserver()
150 atomic_set(&server->probe_outstanding, ac.alist->nr_addrs); in afs_do_probe_fileserver()
151 memset(&server->probe, 0, sizeof(server->probe)); in afs_do_probe_fileserver()
152 server->probe.rtt = UINT_MAX; in afs_do_probe_fileserver()
155 call = afs_fs_get_capabilities(net, server, &ac, key, server_index); in afs_do_probe_fileserver()
165 afs_fs_probe_done(server); in afs_do_probe_fileserver()
175 struct afs_server *server; in afs_probe_fileservers() local
183 server = list->servers[i].server; in afs_probe_fileservers()
184 if (test_bit(AFS_SERVER_FL_PROBED, &server->flags)) in afs_probe_fileservers()
187 if (!test_and_set_bit_lock(AFS_SERVER_FL_PROBING, &server->flags) && in afs_probe_fileservers()
188 afs_do_probe_fileserver(net, server, key, i, &e)) in afs_probe_fileservers()
201 struct afs_server *server; in afs_wait_for_fs_probes() local
211 server = slist->servers[i].server; in afs_wait_for_fs_probes()
212 if (!test_bit(AFS_SERVER_FL_PROBING, &server->flags)) in afs_wait_for_fs_probes()
214 if (server->probe.responded) in afs_wait_for_fs_probes()
227 server = slist->servers[i].server; in afs_wait_for_fs_probes()
229 add_wait_queue(&server->probe_wq, &waits[i]); in afs_wait_for_fs_probes()
239 server = slist->servers[i].server; in afs_wait_for_fs_probes()
240 if (server->probe.responded) in afs_wait_for_fs_probes()
242 if (test_bit(AFS_SERVER_FL_PROBING, &server->flags)) in afs_wait_for_fs_probes()
257 server = slist->servers[i].server; in afs_wait_for_fs_probes()
258 if (server->probe.responded && in afs_wait_for_fs_probes()
259 server->probe.rtt < rtt) { in afs_wait_for_fs_probes()
261 rtt = server->probe.rtt; in afs_wait_for_fs_probes()
264 remove_wait_queue(&server->probe_wq, &waits[i]); in afs_wait_for_fs_probes()