diff options
Diffstat (limited to 'fs/afs/server.c')
-rw-r--r-- | fs/afs/server.c | 8 |
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 | } |