Lines Matching refs:server

56  * outstanding server count.
59 struct afs_server *server, bool fast)
66 atj = server->probed_at;
77 static void afs_finished_fs_probe(struct afs_net *net, struct afs_server *server,
84 list_add_tail(&server->probe_link, &net->fs_probe_slow);
86 server->rtt = UINT_MAX;
87 clear_bit(AFS_SERVER_FL_RESPONDING, &server->flags);
88 list_add_tail(&server->probe_link, &net->fs_probe_fast);
93 afs_schedule_fs_probe(net, server, !responded);
99 static void afs_done_one_fs_probe(struct afs_net *net, struct afs_server *server,
105 afs_finished_fs_probe(net, server, estate);
107 wake_up_all(&server->probe_wq);
115 struct afs_server *server,
122 spin_lock(&server->probe_lock);
130 spin_unlock(&server->probe_lock);
131 return afs_done_one_fs_probe(net, server, estate);
143 struct afs_server *server = call->server;
148 _enter("%pU,%u", &server->uuid, index);
152 spin_lock(&server->probe_lock);
196 set_bit(AFS_SERVER_FL_IS_YFS, &server->flags);
197 server->service_id = call->service_id;
201 clear_bit(AFS_SERVER_FL_IS_YFS, &server->flags);
202 server->service_id = call->service_id;
206 set_bit(AFS_SERVER_FL_HAS_FS64, &server->flags);
208 clear_bit(AFS_SERVER_FL_HAS_FS64, &server->flags);
214 server->rtt = rtt_us;
221 set_bit(AFS_SERVER_FL_RESPONDING, &server->flags);
223 spin_unlock(&server->probe_lock);
225 trace_afs_fs_probe(server, false, estate, index, call->error, call->abort_code, rtt_us);
227 estate->probe_seq, &server->uuid, index,
231 return afs_done_one_fs_probe(call->net, server, estate);
238 void afs_fs_probe_fileserver(struct afs_net *net, struct afs_server *server,
245 _enter("%pU", &server->uuid);
252 estate->server_id = server->debug_id;
255 write_lock(&server->fs_lock);
257 old = rcu_dereference_protected(server->endpoint_state,
258 lockdep_is_held(&server->fs_lock));
263 estate->probe_seq = ++server->probe_counter;
266 rcu_assign_pointer(server->endpoint_state, estate);
268 write_unlock(&server->fs_lock);
275 server->probed_at = jiffies;
290 trace_afs_fs_probe(server, true, estate, index, 0, 0, 0);
291 if (!afs_fs_get_capabilities(net, server, estate, index, key))
292 afs_fs_probe_not_done(net, server, estate, index);
324 add_wait_queue(&slist->servers[i].server->probe_wq, &states[i].probe_waiter);
353 remove_wait_queue(&slist->servers[i].server->probe_wq, &states[i].probe_waiter);
373 * Dispatch a probe to a server.
375 static void afs_dispatch_fs_probe(struct afs_net *net, struct afs_server *server)
383 list_del_init(&server->probe_link);
385 afs_get_server(server, afs_server_trace_get_probe);
388 afs_fs_probe_fileserver(net, server, NULL, key);
389 afs_put_server(net, server, afs_server_trace_put_probe);
393 * Probe a server immediately without waiting for its due time to come
396 void afs_probe_fileserver(struct afs_net *net, struct afs_server *server)
399 if (!list_empty(&server->probe_link))
400 return afs_dispatch_fs_probe(net, server);
410 struct afs_server *fast, *slow, *server;
430 fast = slow = server = NULL;
455 server = fast ?: slow;
456 if (server)
457 _debug("probe %pU", &server->uuid);
459 if (server && (first_pass || !need_resched())) {
460 afs_dispatch_fs_probe(net, server);
467 if (server) {
484 int afs_wait_for_one_fs_probe(struct afs_server *server, struct afs_endpoint_state *estate,
495 prepare_to_wait_event(&server->probe_wq, &wait,
506 finish_wait(&server->probe_wq, &wait);