On Tue, May 27, 2025 at 4:34 AM Jeff Layton <jlay...@kernel.org> wrote:
>
> After assigning the inode number to the namespace, use it to create a
> unique name for each netns refcount tracker with the ns.inum and
> net_cookie values in it, and register a symlink to the debugfs file for
> it.
>
> init_net is registered before the ref_tracker dir is created, so add a
> late_initcall() to register its files and symlinks.
>
> Signed-off-by: Jeff Layton <jlay...@kernel.org>
> ---
>  net/core/net_namespace.c | 30 +++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
>
> diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
> index 
> 8708eb975295ffb78de35fcf4abef7cc281f5a51..39b01af90d240df48827e5c3159c3e2253e0a44d
>  100644
> --- a/net/core/net_namespace.c
> +++ b/net/core/net_namespace.c
> @@ -791,12 +791,40 @@ struct net *get_net_ns_by_pid(pid_t pid)
>  }
>  EXPORT_SYMBOL_GPL(get_net_ns_by_pid);
>
> +#ifdef CONFIG_NET_NS_REFCNT_TRACKER
> +static void net_ns_net_debugfs(struct net *net)
> +{
> +       ref_tracker_dir_symlink(&net->refcnt_tracker, "netns--%lx-%u-refcnt",
> +                               net->net_cookie, net->ns.inum);

With proper annotations, you should be able to catch format error as in:

warning: format ‘%lx’ expects argument of type ‘long unsigned int’,
but argument x has type ‘u64’ {aka ‘long long unsigned int’}
[-Wformat=]

Reply via email to