diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-02-08 07:18:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-08 12:22:23 -0500 |
commit | 58bfdd6deeec02b73691ea2c951a3c5d743bca63 (patch) | |
tree | 8f46771858dee87080b0ed64bc176b25c239f3b1 /include/linux/utsname.h | |
parent | c5289a69491f2b597e22d0456b46cc043deedbd8 (diff) |
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>
Diffstat (limited to 'include/linux/utsname.h')
-rw-r--r-- | include/linux/utsname.h | 21 |
1 files changed, 21 insertions, 0 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 | ||
40 | struct uts_namespace { | 41 | struct uts_namespace { |
@@ -43,6 +44,7 @@ struct uts_namespace { | |||
43 | }; | 44 | }; |
44 | extern struct uts_namespace init_uts_ns; | 45 | extern struct uts_namespace init_uts_ns; |
45 | 46 | ||
47 | #ifdef CONFIG_UTS_NS | ||
46 | static inline void get_uts_ns(struct uts_namespace *ns) | 48 | static 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 | ||
62 | static inline void get_uts_ns(struct uts_namespace *ns) | ||
63 | { | ||
64 | } | ||
65 | |||
66 | static inline void put_uts_ns(struct uts_namespace *ns) | ||
67 | { | ||
68 | } | ||
69 | |||
70 | static 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 | |||
59 | static inline struct new_utsname *utsname(void) | 80 | static inline struct new_utsname *utsname(void) |
60 | { | 81 | { |
61 | return ¤t->nsproxy->uts_ns->name; | 82 | return ¤t->nsproxy->uts_ns->name; |