mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] IPC namespace - utils
This patch adds basic IPC namespace functionality to IPC utils: - init_ipc_ns - copy/clone/unshare/free IPC ns - /proc preparations Signed-off-by: Pavel Emelianov <xemul@openvz.org> Signed-off-by: Kirill Korotaev <dev@openvz.org> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Cedric Le Goater <clg@fr.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
25b21cb2f6
commit
73ea41302b
5 changed files with 173 additions and 14 deletions
|
@ -88,20 +88,38 @@ struct ipc_namespace {
|
|||
};
|
||||
|
||||
extern struct ipc_namespace init_ipc_ns;
|
||||
|
||||
#ifdef CONFIG_SYSVIPC
|
||||
#define INIT_IPC_NS(ns) .ns = &init_ipc_ns,
|
||||
#else
|
||||
#define INIT_IPC_NS(ns)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IPC_NS
|
||||
extern void free_ipc_ns(struct kref *kref);
|
||||
extern int copy_ipcs(unsigned long flags, struct task_struct *tsk);
|
||||
extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns);
|
||||
#else
|
||||
static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
|
||||
{
|
||||
#ifdef CONFIG_IPC_NS
|
||||
if (ns)
|
||||
kref_get(&ns->kref);
|
||||
#endif
|
||||
return ns;
|
||||
}
|
||||
|
||||
static inline void put_ipc_ns(struct ipc_namespace *ns)
|
||||
{
|
||||
#ifdef CONFIG_IPC_NS
|
||||
kref_put(&ns->kref, free_ipc_ns);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue