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 int 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));
266 afs_set_peer_appdata(server, old_alist, new_alist);
270 estate->probe_seq = ++server->probe_counter;
274 server->addr_version = new_alist->version;
275 rcu_assign_pointer(server->endpoint_state, estate);
276 write_unlock(&server->fs_lock);
285 server->probed_at = jiffies;
300 trace_afs_fs_probe(server, true, estate, index, 0, 0, 0);
301 if (!afs_fs_get_capabilities(net, server, estate, index, key))
302 afs_fs_probe_not_done(net, server, estate, index);
336 add_wait_queue(&slist->servers[i].server->probe_wq, &states[i].probe_waiter);
365 remove_wait_queue(&slist->servers[i].server->probe_wq, &states[i].probe_waiter);
385 * Dispatch a probe to a server.
387 static void afs_dispatch_fs_probe(struct afs_net *net, struct afs_server *server)
395 list_del_init(&server->probe_link);
397 afs_get_server(server, afs_server_trace_get_probe);
400 afs_fs_probe_fileserver(net, server, NULL, key);
401 afs_put_server(net, server, afs_server_trace_put_probe);
405 * Probe a server immediately without waiting for its due time to come
408 void afs_probe_fileserver(struct afs_net *net, struct afs_server *server)
411 if (!list_empty(&server->probe_link))
412 return afs_dispatch_fs_probe(net, server);
422 struct afs_server *fast, *slow, *server;
442 fast = slow = server = NULL;
467 server = fast ?: slow;
468 if (server)
469 _debug("probe %pU", &server->uuid);
471 if (server && (first_pass || !need_resched())) {
472 afs_dispatch_fs_probe(net, server);
479 if (server) {
496 int afs_wait_for_one_fs_probe(struct afs_server *server, struct afs_endpoint_state *estate,
507 prepare_to_wait_event(&server->probe_wq, &wait,
518 finish_wait(&server->probe_wq, &wait);