diff options
Diffstat (limited to 'include/linux/ipc.h')
-rw-r--r-- | include/linux/ipc.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/ipc.h b/include/linux/ipc.h index 36027b10f283..d9e2b3f36c35 100644 --- a/include/linux/ipc.h +++ b/include/linux/ipc.h | |||
@@ -88,20 +88,38 @@ struct ipc_namespace { | |||
88 | }; | 88 | }; |
89 | 89 | ||
90 | extern struct ipc_namespace init_ipc_ns; | 90 | extern struct ipc_namespace init_ipc_ns; |
91 | |||
92 | #ifdef CONFIG_SYSVIPC | ||
93 | #define INIT_IPC_NS(ns) .ns = &init_ipc_ns, | ||
94 | #else | ||
95 | #define INIT_IPC_NS(ns) | ||
96 | #endif | ||
97 | |||
98 | #ifdef CONFIG_IPC_NS | ||
91 | extern void free_ipc_ns(struct kref *kref); | 99 | extern void free_ipc_ns(struct kref *kref); |
92 | extern int copy_ipcs(unsigned long flags, struct task_struct *tsk); | 100 | extern int copy_ipcs(unsigned long flags, struct task_struct *tsk); |
93 | extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns); | 101 | extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns); |
102 | #else | ||
103 | static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk) | ||
104 | { | ||
105 | return 0; | ||
106 | } | ||
107 | #endif | ||
94 | 108 | ||
95 | static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) | 109 | static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) |
96 | { | 110 | { |
111 | #ifdef CONFIG_IPC_NS | ||
97 | if (ns) | 112 | if (ns) |
98 | kref_get(&ns->kref); | 113 | kref_get(&ns->kref); |
114 | #endif | ||
99 | return ns; | 115 | return ns; |
100 | } | 116 | } |
101 | 117 | ||
102 | static inline void put_ipc_ns(struct ipc_namespace *ns) | 118 | static inline void put_ipc_ns(struct ipc_namespace *ns) |
103 | { | 119 | { |
120 | #ifdef CONFIG_IPC_NS | ||
104 | kref_put(&ns->kref, free_ipc_ns); | 121 | kref_put(&ns->kref, free_ipc_ns); |
122 | #endif | ||
105 | } | 123 | } |
106 | 124 | ||
107 | #endif /* __KERNEL__ */ | 125 | #endif /* __KERNEL__ */ |