diff options
| author | Pavel Emelyanov <xemul@openvz.org> | 2008-02-08 04:18:21 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-08 09:22:23 -0800 | 
| commit | 58bfdd6deeec02b73691ea2c951a3c5d743bca63 (patch) | |
| tree | 8f46771858dee87080b0ed64bc176b25c239f3b1 | |
| parent | c5289a69491f2b597e22d0456b46cc043deedbd8 (diff) | |
| download | olio-linux-3.10-58bfdd6deeec02b73691ea2c951a3c5d743bca63.tar.xz olio-linux-3.10-58bfdd6deeec02b73691ea2c951a3c5d743bca63.zip  | |
namespaces: move the UTS namespace under UTS_NS option
Currently all the namespace management code is in the kernel/utsname.c file,
so just compile it out and make stubs in the appropriate header.
The init namespace itself is in init/version.c and is in the kernel all the
time.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Cc: Cedric Le Goater <clg@fr.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Cc: Kirill Korotaev <dev@sw.ru>
Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | include/linux/utsname.h | 21 | ||||
| -rw-r--r-- | init/Kconfig | 7 | ||||
| -rw-r--r-- | kernel/Makefile | 3 | 
3 files changed, 30 insertions, 1 deletions
diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 923db99175f..11232676bff 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h @@ -35,6 +35,7 @@ struct new_utsname {  #include <linux/sched.h>  #include <linux/kref.h>  #include <linux/nsproxy.h> +#include <linux/err.h>  #include <asm/atomic.h>  struct uts_namespace { @@ -43,6 +44,7 @@ struct uts_namespace {  };  extern struct uts_namespace init_uts_ns; +#ifdef CONFIG_UTS_NS  static inline void get_uts_ns(struct uts_namespace *ns)  {  	kref_get(&ns->kref); @@ -56,6 +58,25 @@ static inline void put_uts_ns(struct uts_namespace *ns)  {  	kref_put(&ns->kref, free_uts_ns);  } +#else +static inline void get_uts_ns(struct uts_namespace *ns) +{ +} + +static inline void put_uts_ns(struct uts_namespace *ns) +{ +} + +static inline struct uts_namespace *copy_utsname(unsigned long flags, +					struct uts_namespace *ns) +{ +	if (flags & CLONE_NEWUTS) +		return ERR_PTR(-EINVAL); + +	return ns; +} +#endif +  static inline struct new_utsname *utsname(void)  {  	return ¤t->nsproxy->uts_ns->name; diff --git a/init/Kconfig b/init/Kconfig index 7654207961a..fef641af78c 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -429,6 +429,13 @@ config NAMESPACES  	  or same user id or pid may refer to different tasks when used in  	  different namespaces. +config UTS_NS +	bool "UTS namespace" +	depends on NAMESPACES +	help +	  In this namespace tasks see different info provided with the +	  uname() system call +  config BLK_DEV_INITRD  	bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"  	depends on BROKEN || !FRV diff --git a/kernel/Makefile b/kernel/Makefile index 685697c0a18..0f15bd40936 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -9,7 +9,7 @@ obj-y     = sched.o fork.o exec_domain.o panic.o printk.o profile.o \  	    rcupdate.o extable.o params.o posix-timers.o \  	    kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \  	    hrtimer.o rwsem.o nsproxy.o srcu.o \ -	    utsname.o notifier.o ksysfs.o pm_qos_params.o +	    notifier.o ksysfs.o pm_qos_params.o  obj-$(CONFIG_SYSCTL) += sysctl_check.o  obj-$(CONFIG_STACKTRACE) += stacktrace.o @@ -33,6 +33,7 @@ obj-$(CONFIG_PROVE_LOCKING) += spinlock.o  obj-$(CONFIG_UID16) += uid16.o  obj-$(CONFIG_MODULES) += module.o  obj-$(CONFIG_KALLSYMS) += kallsyms.o +obj-$(CONFIG_UTS_NS) += utsname.o  obj-$(CONFIG_PM) += power/  obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o  obj-$(CONFIG_KEXEC) += kexec.o  |