summaryrefslogtreecommitdiffstats
path: root/fs/lockd
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2023-03-03 07:15:57 -0500
committerChuck Lever <chuck.lever@oracle.com>2023-04-26 09:04:59 -0400
commitbfca7a6f0c75f5d97f5efc2c80cca55bdbf5f79a (patch)
treedd90e784032f57eff9c15e5384e0f7f47e2e5cb1 /fs/lockd
parentc4c649ab413ba6a785b25f0edbb12f617c87db2a (diff)
downloadlinux-stable-bfca7a6f0c75f5d97f5efc2c80cca55bdbf5f79a.tar.gz
linux-stable-bfca7a6f0c75f5d97f5efc2c80cca55bdbf5f79a.tar.bz2
linux-stable-bfca7a6f0c75f5d97f5efc2c80cca55bdbf5f79a.zip
lockd: purge resources held on behalf of nlm clients when shutting down
It's easily possible for the server to have an outstanding lock when we go to shut down. When that happens, we often get a warning like this in the kernel log: lockd: couldn't shutdown host module for net f0000000! This is because the shutdown procedures skip removing any hosts that still have outstanding resources (locks). Eventually, things seem to get cleaned up anyway, but the log message is unsettling, and server shutdown doesn't seem to be working the way it was intended. Ensure that we tear down any resources held on behalf of a client when tearing one down for server shutdown. Reported-by: Yongcheng Yang <yoyang@redhat.com> Link: https://bugzilla.redhat.com/show_bug.cgi?id=2063818 Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/lockd')
-rw-r--r--fs/lockd/host.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c
index cdc8e12cdac4..127a728fcbc8 100644
--- a/fs/lockd/host.c
+++ b/fs/lockd/host.c
@@ -629,6 +629,7 @@ nlm_shutdown_hosts_net(struct net *net)
rpc_shutdown_client(host->h_rpcclnt);
host->h_rpcclnt = NULL;
}
+ nlmsvc_free_host_resources(host);
}
/* Then, perform a garbage collection pass */