summaryrefslogtreecommitdiff
path: root/net/core/net_namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/net_namespace.c')
-rw-r--r--net/core/net_namespace.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index f58ef920a3a1..1b6f3826dd0e 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -812,19 +812,25 @@ static void net_ns_net_debugfs(struct net *net)
static __net_init int net_ns_net_init(struct net *net)
{
- int ret;
-
#ifdef CONFIG_NET_NS
net->ns.ops = &netns_operations;
#endif
- ret = ns_alloc_inum(&net->ns);
- if (!ret)
- net_ns_net_debugfs(net);
- return ret;
+ net->ns.inum = PROC_NET_INIT_INO;
+ if (net != &init_net) {
+ int ret = ns_alloc_inum(&net->ns);
+ if (ret)
+ return ret;
+ }
+ net_ns_net_debugfs(net);
+ return 0;
}
static __net_exit void net_ns_net_exit(struct net *net)
{
+ /*
+ * Initial network namespace doesn't exit so we don't need any
+ * special checks here.
+ */
ns_free_inum(&net->ns);
}