[NETNS]: Fix allnoconfig compilation error.
Daniel Lezcano [Thu, 13 Sep 2007 07:16:29 +0000 (09:16 +0200)]
When CONFIG_NET=no, init_net is unresolved because net_namespace.c
is not compiled and the include pull init_net definition.

This problem was very similar with the ipc namespace where the kernel
can be compiled with SYSV ipc out.

This patch fix that defining a macro which simply remove init_net
initialization from nsproxy namespace aggregator.

Compiled and booted on qemu-i386 with CONFIG_NET=no and CONFIG_NET=yes.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

include/linux/init_task.h
include/net/net_namespace.h

index e2c1ffc..513bc3e 100644 (file)
@@ -79,7 +79,7 @@ extern struct nsproxy init_nsproxy;
        .nslock         = __SPIN_LOCK_UNLOCKED(nsproxy.nslock),         \
        .uts_ns         = &init_uts_ns,                                 \
        .mnt_ns         = NULL,                                         \
-       .net_ns         = &init_net,                                    \
+       INIT_NET_NS(net_ns)                                             \
        INIT_IPC_NS(ipc_ns)                                             \
        .user_ns        = &init_user_ns,                                \
 }
index fac42db..3081b6e 100644 (file)
@@ -28,7 +28,14 @@ struct net {
        struct hlist_head       *dev_index_head;
 };
 
+#ifdef CONFIG_NET
+/* Init's network namespace */
 extern struct net init_net;
+#define INIT_NET_NS(net_ns) .net_ns = &init_net,
+#else
+#define INIT_NET_NS(net_ns)
+#endif
+
 extern struct list_head net_namespace_list;
 
 extern void __put_net(struct net *net);