4.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Howells dhowells@redhat.com
commit f014ffb025c159fd51d19af8af0022a991aaa4f8 upstream.
Fix a leak of afs_server structs. The routine that installs them in the various lookup lists and trees gets a ref on leaving the function, whether it added the server or a server already exists. It shouldn't increment the refcount if it added the server.
The effect of this that "rmmod kafs" will hang waiting for the leaked server to become unused.
Fixes: d2ddc776a458 ("afs: Overhaul volume and server record caching and fileserver rotation") Signed-off-by: David Howells dhowells@redhat.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
--- fs/afs/server.c | 2 ++ 1 file changed, 2 insertions(+)
--- a/fs/afs/server.c +++ b/fs/afs/server.c @@ -199,9 +199,11 @@ static struct afs_server *afs_install_se
write_sequnlock(&net->fs_addr_lock); ret = 0; + goto out;
exists: afs_get_server(server); +out: write_sequnlock(&net->fs_lock); return server; }