···397397}398398399399/* init code that must occur even if setup_net() is not called. */400400-static __net_init void preinit_net(struct net *net, struct user_namespace *user_ns)400400+static __net_init int preinit_net(struct net *net, struct user_namespace *user_ns)401401{402402+ const struct proc_ns_operations *ns_ops;403403+ int ret;404404+405405+#ifdef CONFIG_NET_NS406406+ ns_ops = &netns_operations;407407+#else408408+ ns_ops = NULL;409409+#endif410410+411411+ ret = ns_common_init(&net->ns, ns_ops, false);412412+ if (ret)413413+ return ret;414414+402415 refcount_set(&net->passive, 1);403403- refcount_set(&net->ns.count, 1);404416 ref_tracker_dir_init(&net->refcnt_tracker, 128, "net_refcnt");405417 ref_tracker_dir_init(&net->notrefcnt_tracker, 128, "net_notrefcnt");406418···432420 INIT_LIST_HEAD(&net->ptype_all);433421 INIT_LIST_HEAD(&net->ptype_specific);434422 preinit_net_sysctl(net);423423+ return 0;435424}436425437426/*···572559 goto dec_ucounts;573560 }574561575575- preinit_net(net, user_ns);562562+ rv = preinit_net(net, user_ns);563563+ if (rv < 0)564564+ goto dec_ucounts;576565 net->ucounts = ucounts;577566 get_user_ns(user_ns);578567···827812828813static __net_init int net_ns_net_init(struct net *net)829814{830830-#ifdef CONFIG_NET_NS831831- net->ns.ops = &netns_operations;832832-#endif833833- net->ns.inum = PROC_NET_INIT_INO;834834- if (net != &init_net) {835835- int ret = ns_alloc_inum(&net->ns);836836- if (ret)837837- return ret;838838- }815815+ int ret = 0;816816+817817+ if (net == &init_net)818818+ net->ns.inum = PROC_NET_INIT_INO;819819+ else820820+ ret = proc_alloc_inum(&to_ns_common(net)->inum);821821+ if (ret)822822+ return ret;823823+839824 net_ns_net_debugfs(net);840825 return 0;841826}···12971282#ifdef CONFIG_KEYS12981283 init_net.key_domain = &init_net_key_domain;12991284#endif13001300- preinit_net(&init_net, &init_user_ns);12851285+ /*12861286+ * This currently cannot fail as the initial network namespace12871287+ * has a static inode number.12881288+ */12891289+ if (preinit_net(&init_net, &init_user_ns))12901290+ panic("Could not preinitialize the initial network namespace");1301129113021292 down_write(&pernet_ops_rwsem);13031293 if (setup_net(&init_net))