]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - fs/afs/server.c
afs: Fix the handling of CB.InitCallBackState3 to find the server by UUID
[mirror_ubuntu-bionic-kernel.git] / fs / afs / server.c
index 1880f1b6a9f1e92daeaf3e604d9d392e440ae8a0..d0ca67322c26ba562e43370634a9c9a75a9c5298 100644 (file)
@@ -426,8 +426,15 @@ static void afs_gc_servers(struct afs_net *net, struct afs_server *gc_list)
                }
                write_sequnlock(&net->fs_lock);
 
-               if (deleted)
+               if (deleted) {
+                       write_seqlock(&net->fs_addr_lock);
+                       if (!hlist_unhashed(&server->addr4_link))
+                               hlist_del_rcu(&server->addr4_link);
+                       if (!hlist_unhashed(&server->addr6_link))
+                               hlist_del_rcu(&server->addr6_link);
+                       write_sequnlock(&net->fs_addr_lock);
                        afs_destroy_server(net, server);
+               }
        }
 }