On Sun, Dec 10, 2017 at 7:12 AM, Tonghao Zhang <xiangxia.m....@gmail.com> wrote: > diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c > index b797832..6c191fb 100644 > --- a/net/core/net_namespace.c > +++ b/net/core/net_namespace.c > @@ -363,6 +363,13 @@ static struct net *net_alloc(void) > if (!net) > goto out_free; > > +#ifdef CONFIG_PROC_FS > + net->core.sock_inuse = alloc_percpu(int); > + if (!net->core.sock_inuse) { > + kmem_cache_free(net_cachep, net); > + goto out_free; > + } > +#endif > rcu_assign_pointer(net->gen, ng); > out: > return net; > @@ -374,6 +381,9 @@ static struct net *net_alloc(void) > > static void net_free(struct net *net) > { > +#ifdef CONFIG_PROC_FS > + free_percpu(net->core.sock_inuse); > +#endif > kfree(rcu_access_pointer(net->gen)); > kmem_cache_free(net_cachep, net); > }
Putting socket code in net_namespace.c doesn't look good.