summaryrefslogtreecommitdiffstats
path: root/fs/lockd
diff options
context:
space:
mode:
authorVasily Averin <vvs@virtuozzo.com>2017-11-06 16:23:24 +0300
committerJ. Bruce Fields <bfields@redhat.com>2017-11-27 16:45:10 -0500
commita3152f1440c762128a626d90718ba6535c81c1b4 (patch)
treeb9479ae1bddeec6d78fc7536c53a756cb9b1f646 /fs/lockd
parentb872285751c1af010e12d02bce7069e2061a58ca (diff)
downloadlinux-stable-a3152f1440c762128a626d90718ba6535c81c1b4.tar.gz
linux-stable-a3152f1440c762128a626d90718ba6535c81c1b4.tar.bz2
linux-stable-a3152f1440c762128a626d90718ba6535c81c1b4.zip
lockd: added cleanup checks in exit_net hook
Signed-off-by: Vasily Averin <vvs@virtuozzo.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/lockd')
-rw-r--r--fs/lockd/svc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index e28796bd7375..cb659ef789c0 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -677,6 +677,17 @@ static int lockd_init_net(struct net *net)
static void lockd_exit_net(struct net *net)
{
+ struct lockd_net *ln = net_generic(net, lockd_net_id);
+
+ WARN_ONCE(!list_empty(&ln->lockd_manager.list),
+ "net %x %s: lockd_manager.list is not empty\n",
+ net->ns.inum, __func__);
+ WARN_ONCE(!list_empty(&ln->nsm_handles),
+ "net %x %s: nsm_handles list is not empty\n",
+ net->ns.inum, __func__);
+ WARN_ONCE(delayed_work_pending(&ln->grace_period_end),
+ "net %x %s: grace_period_end was not cancelled\n",
+ net->ns.inum, __func__);
}
static struct pernet_operations lockd_net_ops = {