Lines Matching refs:net
22 static void afs_schedule_fs_probe(struct afs_net *net, in afs_schedule_fs_probe() argument
27 if (!net->live) in afs_schedule_fs_probe()
33 afs_inc_servers_outstanding(net); in afs_schedule_fs_probe()
34 if (timer_reduce(&net->fs_probe_timer, atj)) in afs_schedule_fs_probe()
35 afs_dec_servers_outstanding(net); in afs_schedule_fs_probe()
41 static void afs_finished_fs_probe(struct afs_net *net, struct afs_server *server) in afs_finished_fs_probe() argument
45 write_seqlock(&net->fs_lock); in afs_finished_fs_probe()
47 list_add_tail(&server->probe_link, &net->fs_probe_slow); in afs_finished_fs_probe()
51 list_add_tail(&server->probe_link, &net->fs_probe_fast); in afs_finished_fs_probe()
53 write_sequnlock(&net->fs_lock); in afs_finished_fs_probe()
55 afs_schedule_fs_probe(net, server, !responded); in afs_finished_fs_probe()
61 static void afs_done_one_fs_probe(struct afs_net *net, struct afs_server *server) in afs_done_one_fs_probe() argument
66 afs_finished_fs_probe(net, server); in afs_done_one_fs_probe()
75 static void afs_fs_probe_not_done(struct afs_net *net, in afs_fs_probe_not_done() argument
94 return afs_done_one_fs_probe(net, server); in afs_fs_probe_not_done()
170 rxrpc_kernel_get_srtt(call->net->socket, call->rxcall, &rtt_us); in afs_fileserver_probe_result()
188 return afs_done_one_fs_probe(call->net, server); in afs_fileserver_probe_result()
195 void afs_fs_probe_fileserver(struct afs_net *net, struct afs_server *server, in afs_fs_probe_fileserver() argument
221 if (!afs_fs_get_capabilities(net, server, &ac, key)) in afs_fs_probe_fileserver()
222 afs_fs_probe_not_done(net, server, &ac); in afs_fs_probe_fileserver()
224 if (!afs_fs_get_capabilities(net, server, &ac, key)) in afs_fs_probe_fileserver()
225 afs_fs_probe_not_done(net, server, &ac); in afs_fs_probe_fileserver()
321 struct afs_net *net = container_of(timer, struct afs_net, fs_probe_timer); in afs_fs_probe_timer() local
323 if (!net->live || !queue_work(afs_wq, &net->fs_prober)) in afs_fs_probe_timer()
324 afs_dec_servers_outstanding(net); in afs_fs_probe_timer()
330 static void afs_dispatch_fs_probe(struct afs_net *net, struct afs_server *server, bool all) in afs_dispatch_fs_probe() argument
331 __releases(&net->fs_lock) in afs_dispatch_fs_probe()
341 write_sequnlock(&net->fs_lock); in afs_dispatch_fs_probe()
343 afs_fs_probe_fileserver(net, server, key, all); in afs_dispatch_fs_probe()
344 afs_put_server(net, server, afs_server_trace_put_probe); in afs_dispatch_fs_probe()
351 void afs_probe_fileserver(struct afs_net *net, struct afs_server *server) in afs_probe_fileserver() argument
353 write_seqlock(&net->fs_lock); in afs_probe_fileserver()
355 return afs_dispatch_fs_probe(net, server, true); in afs_probe_fileserver()
356 write_sequnlock(&net->fs_lock); in afs_probe_fileserver()
364 struct afs_net *net = container_of(work, struct afs_net, fs_prober); in afs_fs_probe_dispatcher() local
369 if (!net->live) { in afs_fs_probe_dispatcher()
370 afs_dec_servers_outstanding(net); in afs_fs_probe_dispatcher()
376 if (list_empty(&net->fs_probe_fast) && list_empty(&net->fs_probe_slow)) { in afs_fs_probe_dispatcher()
377 afs_dec_servers_outstanding(net); in afs_fs_probe_dispatcher()
383 write_seqlock(&net->fs_lock); in afs_fs_probe_dispatcher()
389 if (!list_empty(&net->fs_probe_fast)) { in afs_fs_probe_dispatcher()
390 fast = list_first_entry(&net->fs_probe_fast, struct afs_server, probe_link); in afs_fs_probe_dispatcher()
399 if (!list_empty(&net->fs_probe_slow)) { in afs_fs_probe_dispatcher()
400 slow = list_first_entry(&net->fs_probe_slow, struct afs_server, probe_link); in afs_fs_probe_dispatcher()
415 afs_dispatch_fs_probe(net, server, server == fast); in afs_fs_probe_dispatcher()
420 write_sequnlock(&net->fs_lock); in afs_fs_probe_dispatcher()
423 if (!queue_work(afs_wq, &net->fs_prober)) in afs_fs_probe_dispatcher()
424 afs_dec_servers_outstanding(net); in afs_fs_probe_dispatcher()
427 if (timer_reduce(&net->fs_probe_timer, timer_at)) in afs_fs_probe_dispatcher()
428 afs_dec_servers_outstanding(net); in afs_fs_probe_dispatcher()
431 afs_dec_servers_outstanding(net); in afs_fs_probe_dispatcher()
474 void afs_fs_probe_cleanup(struct afs_net *net) in afs_fs_probe_cleanup() argument
476 if (del_timer_sync(&net->fs_probe_timer)) in afs_fs_probe_cleanup()
477 afs_dec_servers_outstanding(net); in afs_fs_probe_cleanup()