Lines Matching refs:ns

22 	struct ipc_namespace *ns;  in create_ipc_ns()  local
25 ns = kmalloc(sizeof(struct ipc_namespace), GFP_KERNEL); in create_ipc_ns()
26 if (ns == NULL) in create_ipc_ns()
29 err = ns_alloc_inum(&ns->ns); in create_ipc_ns()
31 kfree(ns); in create_ipc_ns()
34 ns->ns.ops = &ipcns_operations; in create_ipc_ns()
36 atomic_set(&ns->count, 1); in create_ipc_ns()
37 err = mq_init_ns(ns); in create_ipc_ns()
39 ns_free_inum(&ns->ns); in create_ipc_ns()
40 kfree(ns); in create_ipc_ns()
45 sem_init_ns(ns); in create_ipc_ns()
46 msg_init_ns(ns); in create_ipc_ns()
47 shm_init_ns(ns); in create_ipc_ns()
49 ns->user_ns = get_user_ns(user_ns); in create_ipc_ns()
51 return ns; in create_ipc_ns()
55 struct user_namespace *user_ns, struct ipc_namespace *ns) in copy_ipcs() argument
58 return get_ipc_ns(ns); in copy_ipcs()
59 return create_ipc_ns(user_ns, ns); in copy_ipcs()
70 void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids, in free_ipcs() argument
87 free(ns, perm); in free_ipcs()
93 static void free_ipc_ns(struct ipc_namespace *ns) in free_ipc_ns() argument
95 sem_exit_ns(ns); in free_ipc_ns()
96 msg_exit_ns(ns); in free_ipc_ns()
97 shm_exit_ns(ns); in free_ipc_ns()
100 put_user_ns(ns->user_ns); in free_ipc_ns()
101 ns_free_inum(&ns->ns); in free_ipc_ns()
102 kfree(ns); in free_ipc_ns()
121 void put_ipc_ns(struct ipc_namespace *ns) in put_ipc_ns() argument
123 if (atomic_dec_and_lock(&ns->count, &mq_lock)) { in put_ipc_ns()
124 mq_clear_sbinfo(ns); in put_ipc_ns()
126 mq_put_mnt(ns); in put_ipc_ns()
127 free_ipc_ns(ns); in put_ipc_ns()
131 static inline struct ipc_namespace *to_ipc_ns(struct ns_common *ns) in to_ipc_ns() argument
133 return container_of(ns, struct ipc_namespace, ns); in to_ipc_ns()
138 struct ipc_namespace *ns = NULL; in ipcns_get() local
144 ns = get_ipc_ns(nsproxy->ipc_ns); in ipcns_get()
147 return ns ? &ns->ns : NULL; in ipcns_get()
150 static void ipcns_put(struct ns_common *ns) in ipcns_put() argument
152 return put_ipc_ns(to_ipc_ns(ns)); in ipcns_put()
157 struct ipc_namespace *ns = to_ipc_ns(new); in ipcns_install() local
158 if (!ns_capable(ns->user_ns, CAP_SYS_ADMIN) || in ipcns_install()
165 nsproxy->ipc_ns = get_ipc_ns(ns); in ipcns_install()