aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/utsname.h21
-rw-r--r--init/Kconfig7
-rw-r--r--kernel/Makefile3
3 files changed, 30 insertions, 1 deletions
diff --git a/include/linux/utsname.h b/include/linux/utsname.h
index 923db99175f2..11232676bfff 100644
--- a/include/linux/utsname.h
+++ b/include/linux/utsname.h
@@ -35,6 +35,7 @@ struct new_utsname {
35#include <linux/sched.h> 35#include <linux/sched.h>
36#include <linux/kref.h> 36#include <linux/kref.h>
37#include <linux/nsproxy.h> 37#include <linux/nsproxy.h>
38#include <linux/err.h>
38#include <asm/atomic.h> 39#include <asm/atomic.h>
39 40
40struct uts_namespace { 41struct uts_namespace {
@@ -43,6 +44,7 @@ struct uts_namespace {
43}; 44};
44extern struct uts_namespace init_uts_ns; 45extern struct uts_namespace init_uts_ns;
45 46
47#ifdef CONFIG_UTS_NS
46static inline void get_uts_ns(struct uts_namespace *ns) 48static inline void get_uts_ns(struct uts_namespace *ns)
47{ 49{
48 kref_get(&ns->kref); 50 kref_get(&ns->kref);
@@ -56,6 +58,25 @@ static inline void put_uts_ns(struct uts_namespace *ns)
56{ 58{
57 kref_put(&ns->kref, free_uts_ns); 59 kref_put(&ns->kref, free_uts_ns);
58} 60}
61#else
62static inline void get_uts_ns(struct uts_namespace *ns)
63{
64}
65
66static inline void put_uts_ns(struct uts_namespace *ns)
67{
68}
69
70static inline struct uts_namespace *copy_utsname(unsigned long flags,
71 struct uts_namespace *ns)
72{
73 if (flags & CLONE_NEWUTS)
74 return ERR_PTR(-EINVAL);
75
76 return ns;
77}
78#endif
79
59static inline struct new_utsname *utsname(void) 80static inline struct new_utsname *utsname(void)
60{ 81{
61 return &current->nsproxy->uts_ns->name; 82 return &current->nsproxy->uts_ns->name;
diff --git a/init/Kconfig b/init/Kconfig
index 7654207961a2..fef641af78c2 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -429,6 +429,13 @@ config NAMESPACES
429 or same user id or pid may refer to different tasks when used in 429 or same user id or pid may refer to different tasks when used in
430 different namespaces. 430 different namespaces.
431 431
432config UTS_NS
433 bool "UTS namespace"
434 depends on NAMESPACES
435 help
436 In this namespace tasks see different info provided with the
437 uname() system call
438
432config BLK_DEV_INITRD 439config BLK_DEV_INITRD
433 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 440 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
434 depends on BROKEN || !FRV 441 depends on BROKEN || !FRV
diff --git a/kernel/Makefile b/kernel/Makefile
index 685697c0a181..0f15bd409367 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 \
9 rcupdate.o extable.o params.o posix-timers.o \ 9 rcupdate.o extable.o params.o posix-timers.o \
10 kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \ 10 kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
11 hrtimer.o rwsem.o nsproxy.o srcu.o \ 11 hrtimer.o rwsem.o nsproxy.o srcu.o \
12 utsname.o notifier.o ksysfs.o pm_qos_params.o 12 notifier.o ksysfs.o pm_qos_params.o
13 13
14obj-$(CONFIG_SYSCTL) += sysctl_check.o 14obj-$(CONFIG_SYSCTL) += sysctl_check.o
15obj-$(CONFIG_STACKTRACE) += stacktrace.o 15obj-$(CONFIG_STACKTRACE) += stacktrace.o
@@ -33,6 +33,7 @@ obj-$(CONFIG_PROVE_LOCKING) += spinlock.o
33obj-$(CONFIG_UID16) += uid16.o 33obj-$(CONFIG_UID16) += uid16.o
34obj-$(CONFIG_MODULES) += module.o 34obj-$(CONFIG_MODULES) += module.o
35obj-$(CONFIG_KALLSYMS) += kallsyms.o 35obj-$(CONFIG_KALLSYMS) += kallsyms.o
36obj-$(CONFIG_UTS_NS) += utsname.o
36obj-$(CONFIG_PM) += power/ 37obj-$(CONFIG_PM) += power/
37obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o 38obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
38obj-$(CONFIG_KEXEC) += kexec.o 39obj-$(CONFIG_KEXEC) += kexec.o