mirror of
https://github.com/torvalds/linux.git
synced 2025-11-30 23:16:01 +07:00
ipc: support ns lookup
Support the generic ns lookup infrastructure to support file handles for namespaces. Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
#include <linux/proc_ns.h>
|
#include <linux/proc_ns.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
#include <linux/nstree.h>
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include <linux/mount.h>
|
#include <linux/mount.h>
|
||||||
#include <linux/user_namespace.h>
|
#include <linux/user_namespace.h>
|
||||||
#include <linux/proc_ns.h>
|
#include <linux/proc_ns.h>
|
||||||
|
#include <linux/nstree.h>
|
||||||
#include <linux/sched/task.h>
|
#include <linux/sched/task.h>
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
@@ -85,6 +86,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
|
|||||||
|
|
||||||
sem_init_ns(ns);
|
sem_init_ns(ns);
|
||||||
shm_init_ns(ns);
|
shm_init_ns(ns);
|
||||||
|
ns_tree_add(ns);
|
||||||
|
|
||||||
return ns;
|
return ns;
|
||||||
|
|
||||||
@@ -201,6 +203,7 @@ void put_ipc_ns(struct ipc_namespace *ns)
|
|||||||
mq_clear_sbinfo(ns);
|
mq_clear_sbinfo(ns);
|
||||||
spin_unlock(&mq_lock);
|
spin_unlock(&mq_lock);
|
||||||
|
|
||||||
|
ns_tree_remove(ns);
|
||||||
if (llist_add(&ns->mnt_llist, &free_ipc_list))
|
if (llist_add(&ns->mnt_llist, &free_ipc_list))
|
||||||
schedule_work(&free_ipc_work);
|
schedule_work(&free_ipc_work);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include <linux/mount.h>
|
#include <linux/mount.h>
|
||||||
#include <linux/ipc_namespace.h>
|
#include <linux/ipc_namespace.h>
|
||||||
#include <linux/rhashtable.h>
|
#include <linux/rhashtable.h>
|
||||||
|
#include <linux/nstree.h>
|
||||||
|
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
@@ -148,6 +149,7 @@ void shm_exit_ns(struct ipc_namespace *ns)
|
|||||||
static int __init ipc_ns_init(void)
|
static int __init ipc_ns_init(void)
|
||||||
{
|
{
|
||||||
shm_init_ns(&init_ipc_ns);
|
shm_init_ns(&init_ipc_ns);
|
||||||
|
ns_tree_add(&init_ipc_ns);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user