l2tp: add netns refcount tracker to l2tp_dfs_seq_data
authorEric Dumazet <edumazet@google.com>
Fri, 10 Dec 2021 07:44:25 +0000 (23:44 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 10 Dec 2021 14:38:27 +0000 (06:38 -0800)
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/l2tp/l2tp_debugfs.c

index acf6e1343b88e070004f422e00d8fc697b4e4130..9d1aafe75f92dd7643c6908b83f4eb60ea79b025 100644 (file)
@@ -32,7 +32,8 @@
 static struct dentry *rootdir;
 
 struct l2tp_dfs_seq_data {
-       struct net *net;
+       struct net      *net;
+       netns_tracker   ns_tracker;
        int tunnel_idx;                 /* current tunnel */
        int session_idx;                /* index of session within current tunnel */
        struct l2tp_tunnel *tunnel;
@@ -281,7 +282,7 @@ static int l2tp_dfs_seq_open(struct inode *inode, struct file *file)
                rc = PTR_ERR(pd->net);
                goto err_free_pd;
        }
-
+       netns_tracker_alloc(pd->net, &pd->ns_tracker, GFP_KERNEL);
        rc = seq_open(file, &l2tp_dfs_seq_ops);
        if (rc)
                goto err_free_net;
@@ -293,7 +294,7 @@ out:
        return rc;
 
 err_free_net:
-       put_net(pd->net);
+       put_net_track(pd->net, &pd->ns_tracker);
 err_free_pd:
        kfree(pd);
        goto out;
@@ -307,7 +308,7 @@ static int l2tp_dfs_seq_release(struct inode *inode, struct file *file)
        seq = file->private_data;
        pd = seq->private;
        if (pd->net)
-               put_net(pd->net);
+               put_net_track(pd->net, &pd->ns_tracker);
        kfree(pd);
        seq_release(inode, file);