Lines Matching refs:ns
42 #define pid_hashfn(nr, ns) \ argument
43 hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift)
82 .ns.inum = PROC_PID_INIT_INO,
84 .ns.ops = &pidns_operations,
108 struct pidmap *map = upid->ns->pidmap + nr / BITS_PER_PAGE; in free_pidmap()
239 struct pid_namespace *ns; in put_pid() local
244 ns = pid->numbers[pid->level].ns; in put_pid()
247 kmem_cache_free(ns->pid_cachep, pid); in put_pid()
248 put_pid_ns(ns); in put_pid()
268 struct pid_namespace *ns = upid->ns; in free_pid() local
270 switch(--ns->nr_hashed) { in free_pid()
277 wake_up_process(ns->child_reaper); in free_pid()
281 WARN_ON(ns->child_reaper); in free_pid()
282 ns->nr_hashed = 0; in free_pid()
285 schedule_work(&ns->proc_work); in free_pid()
297 struct pid *alloc_pid(struct pid_namespace *ns) in alloc_pid() argument
306 pid = kmem_cache_alloc(ns->pid_cachep, GFP_KERNEL); in alloc_pid()
310 tmp = ns; in alloc_pid()
311 pid->level = ns->level; in alloc_pid()
312 for (i = ns->level; i >= 0; i--) { in alloc_pid()
320 pid->numbers[i].ns = tmp; in alloc_pid()
325 if (pid_ns_prepare_proc(ns)) in alloc_pid()
329 get_pid_ns(ns); in alloc_pid()
334 upid = pid->numbers + ns->level; in alloc_pid()
336 if (!(ns->nr_hashed & PIDNS_HASH_ADDING)) in alloc_pid()
340 &pid_hash[pid_hashfn(upid->nr, upid->ns)]); in alloc_pid()
341 upid->ns->nr_hashed++; in alloc_pid()
349 put_pid_ns(ns); in alloc_pid()
352 while (++i <= ns->level) in alloc_pid()
355 kmem_cache_free(ns->pid_cachep, pid); in alloc_pid()
359 void disable_pid_allocation(struct pid_namespace *ns) in disable_pid_allocation() argument
362 ns->nr_hashed &= ~PIDNS_HASH_ADDING; in disable_pid_allocation()
366 struct pid *find_pid_ns(int nr, struct pid_namespace *ns) in find_pid_ns() argument
371 &pid_hash[pid_hashfn(nr, ns)], pid_chain) in find_pid_ns()
372 if (pnr->nr == nr && pnr->ns == ns) in find_pid_ns()
374 numbers[ns->level]); in find_pid_ns()
452 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) in find_task_by_pid_ns() argument
457 return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID); in find_task_by_pid_ns()
501 pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns) in pid_nr_ns() argument
506 if (pid && ns->level <= pid->level) { in pid_nr_ns()
507 upid = &pid->numbers[ns->level]; in pid_nr_ns()
508 if (upid->ns == ns) in pid_nr_ns()
522 struct pid_namespace *ns) in __task_pid_nr_ns() argument
527 if (!ns) in __task_pid_nr_ns()
528 ns = task_active_pid_ns(current); in __task_pid_nr_ns()
532 nr = pid_nr_ns(task->pids[type].pid, ns); in __task_pid_nr_ns()
540 pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) in task_tgid_nr_ns() argument
542 return pid_nr_ns(task_tgid(tsk), ns); in task_tgid_nr_ns()
557 struct pid *find_ge_pid(int nr, struct pid_namespace *ns) in find_ge_pid() argument
562 pid = find_pid_ns(nr, ns); in find_ge_pid()
565 nr = next_pidmap(ns, nr); in find_ge_pid()