/ipc/ |
D | namespace.c | 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 = proc_alloc_inum(&ns->proc_inum); in create_ipc_ns() 31 kfree(ns); in create_ipc_ns() 35 atomic_set(&ns->count, 1); in create_ipc_ns() 36 err = mq_init_ns(ns); in create_ipc_ns() 38 proc_free_inum(ns->proc_inum); in create_ipc_ns() 39 kfree(ns); in create_ipc_ns() 44 sem_init_ns(ns); in create_ipc_ns() [all …]
|
D | ipcns_notifier.c | 28 struct ipc_namespace *ns; in ipcns_callback() local 37 ns = container_of(self, struct ipc_namespace, ipcns_nb); in ipcns_callback() 47 recompute_msgmni(ns); in ipcns_callback() 56 int register_ipcns_notifier(struct ipc_namespace *ns) in register_ipcns_notifier() argument 60 memset(&ns->ipcns_nb, 0, sizeof(ns->ipcns_nb)); in register_ipcns_notifier() 61 ns->ipcns_nb.notifier_call = ipcns_callback; in register_ipcns_notifier() 62 ns->ipcns_nb.priority = IPCNS_CALLBACK_PRI; in register_ipcns_notifier() 63 rc = blocking_notifier_chain_register(&ipcns_chain, &ns->ipcns_nb); in register_ipcns_notifier() 65 ns->auto_msgmni = 1; in register_ipcns_notifier() 69 int cond_register_ipcns_notifier(struct ipc_namespace *ns) in cond_register_ipcns_notifier() argument [all …]
|
D | shm.c | 49 struct ipc_namespace *ns; member 59 #define shm_ids(ns) ((ns)->ids[IPC_SHM_IDS]) argument 67 static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp); 72 void shm_init_ns(struct ipc_namespace *ns) in shm_init_ns() argument 74 ns->shm_ctlmax = SHMMAX; in shm_init_ns() 75 ns->shm_ctlall = SHMALL; in shm_init_ns() 76 ns->shm_ctlmni = SHMMNI; in shm_init_ns() 77 ns->shm_rmid_forced = 0; in shm_init_ns() 78 ns->shm_tot = 0; in shm_init_ns() 79 ipc_init_ids(&shm_ids(ns)); in shm_init_ns() [all …]
|
D | msg.c | 71 #define msg_ids(ns) ((ns)->ids[IPC_MSG_IDS]) argument 87 void recompute_msgmni(struct ipc_namespace *ns) in recompute_msgmni() argument 100 ns->msg_ctlmni = MSGMNI; in recompute_msgmni() 105 ns->msg_ctlmni = IPCMNI / nb_ns; in recompute_msgmni() 109 ns->msg_ctlmni = allowed; in recompute_msgmni() 112 void msg_init_ns(struct ipc_namespace *ns) in msg_init_ns() argument 114 ns->msg_ctlmax = MSGMAX; in msg_init_ns() 115 ns->msg_ctlmnb = MSGMNB; in msg_init_ns() 117 recompute_msgmni(ns); in msg_init_ns() 119 atomic_set(&ns->msg_bytes, 0); in msg_init_ns() [all …]
|
D | util.h | 25 extern void mq_clear_sbinfo(struct ipc_namespace *ns); 26 extern void mq_put_mnt(struct ipc_namespace *ns); 28 static inline void mq_clear_sbinfo(struct ipc_namespace *ns) { } in mq_clear_sbinfo() argument 29 static inline void mq_put_mnt(struct ipc_namespace *ns) { } in mq_put_mnt() argument 33 void sem_init_ns(struct ipc_namespace *ns); 34 void msg_init_ns(struct ipc_namespace *ns); 35 void shm_init_ns(struct ipc_namespace *ns); 37 void sem_exit_ns(struct ipc_namespace *ns); 38 void msg_exit_ns(struct ipc_namespace *ns); 39 void shm_exit_ns(struct ipc_namespace *ns); [all …]
|
D | sem.c | 139 #define sem_ids(ns) ((ns)->ids[IPC_SEM_IDS]) argument 166 void sem_init_ns(struct ipc_namespace *ns) in sem_init_ns() argument 168 ns->sc_semmsl = SEMMSL; in sem_init_ns() 169 ns->sc_semmns = SEMMNS; in sem_init_ns() 170 ns->sc_semopm = SEMOPM; in sem_init_ns() 171 ns->sc_semmni = SEMMNI; in sem_init_ns() 172 ns->used_sems = 0; in sem_init_ns() 173 ipc_init_ids(&ns->ids[IPC_SEM_IDS]); in sem_init_ns() 177 void sem_exit_ns(struct ipc_namespace *ns) in sem_exit_ns() argument 179 free_ipcs(ns, &sem_ids(ns), freeary); in sem_exit_ns() [all …]
|
D | util.c | 311 static int ipcget_new(struct ipc_namespace *ns, struct ipc_ids *ids, in ipcget_new() argument 317 err = ops->getnew(ns, params); in ipcget_new() 337 static int ipc_check_perms(struct ipc_namespace *ns, in ipc_check_perms() argument 344 if (ipcperms(ns, ipcp, params->flg)) in ipc_check_perms() 369 static int ipcget_public(struct ipc_namespace *ns, struct ipc_ids *ids, in ipcget_public() argument 387 err = ops->getnew(ns, params); in ipcget_public() 402 err = ipc_check_perms(ns, ipcp, ops, params); in ipcget_public() 527 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag) in ipcperms() argument 542 !ns_capable(ns->user_ns, CAP_IPC_OWNER)) in ipcperms() 699 int ipcget(struct ipc_namespace *ns, struct ipc_ids *ids, in ipcget() argument [all …]
|
D | mqueue.c | 112 struct ipc_namespace *ns; in get_ns_from_inode() local 115 ns = __get_ns_from_inode(inode); in get_ns_from_inode() 117 return ns; in get_ns_from_inode() 312 struct ipc_namespace *ns = data; in mqueue_fill_super() local 319 inode = mqueue_get_inode(sb, ns, S_IFDIR | S_ISVTX | S_IRWXUGO, NULL); in mqueue_fill_super() 334 struct ipc_namespace *ns = current->nsproxy->ipc_ns; in mqueue_mount() local 338 if (!ns_capable(ns->user_ns, CAP_SYS_ADMIN)) in mqueue_mount() 341 data = ns; in mqueue_mount() 1398 int mq_init_ns(struct ipc_namespace *ns) in mq_init_ns() argument 1400 ns->mq_queues_count = 0; in mq_init_ns() [all …]
|
D | ipc_sysctl.c | 55 struct ipc_namespace *ns = current->nsproxy->ipc_ns; in proc_ipc_dointvec_minmax_orphans() local 60 if (ns->shm_rmid_forced) in proc_ipc_dointvec_minmax_orphans() 61 shm_destroy_orphaned(ns); in proc_ipc_dointvec_minmax_orphans()
|