On Tue, May 27, 2025 at 6:35 AM Eric Dumazet <eduma...@google.com> wrote: > > 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=]
Reference: include/linux/compiler_attributes.h:158:#define __printf(a, b) __attribute__((__format__(printf, a, b)))