aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/afs/server.c')
-rw-r--r--fs/afs/server.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/afs/server.c b/fs/afs/server.c
index 629c74986cff..2c5cff60e34d 100644
--- a/fs/afs/server.c
+++ b/fs/afs/server.c
@@ -395,14 +395,16 @@ static void afs_destroy_server(struct afs_net *net, struct afs_server *server)
395 struct afs_addr_list *alist = rcu_access_pointer(server->addresses); 395 struct afs_addr_list *alist = rcu_access_pointer(server->addresses);
396 struct afs_addr_cursor ac = { 396 struct afs_addr_cursor ac = {
397 .alist = alist, 397 .alist = alist,
398 .addr = &alist->addrs[0],
399 .start = alist->index, 398 .start = alist->index,
400 .index = alist->index, 399 .index = 0,
400 .addr = &alist->addrs[alist->index],
401 .error = 0, 401 .error = 0,
402 }; 402 };
403 _enter("%p", server); 403 _enter("%p", server);
404 404
405 afs_fs_give_up_all_callbacks(net, server, &ac, NULL); 405 if (test_bit(AFS_SERVER_FL_MAY_HAVE_CB, &server->flags))
406 afs_fs_give_up_all_callbacks(net, server, &ac, NULL);
407
406 call_rcu(&server->rcu, afs_server_rcu); 408 call_rcu(&server->rcu, afs_server_rcu);
407 afs_dec_servers_outstanding(net); 409 afs_dec_servers_outstanding(net);
408} 410}