Lines Matching refs:flags
87 static struct nsproxy *create_new_namespaces(u64 flags, in create_new_namespaces() argument
98 new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, user_ns, new_fs); in create_new_namespaces()
104 new_nsp->uts_ns = copy_utsname(flags, user_ns, tsk->nsproxy->uts_ns); in create_new_namespaces()
110 new_nsp->ipc_ns = copy_ipcs(flags, user_ns, tsk->nsproxy->ipc_ns); in create_new_namespaces()
117 copy_pid_ns(flags, user_ns, tsk->nsproxy->pid_ns_for_children); in create_new_namespaces()
123 new_nsp->cgroup_ns = copy_cgroup_ns(flags, user_ns, in create_new_namespaces()
130 new_nsp->net_ns = copy_net_ns(flags, user_ns, tsk->nsproxy->net_ns); in create_new_namespaces()
136 new_nsp->time_ns_for_children = copy_time_ns(flags, user_ns, in create_new_namespaces()
167 int copy_namespaces(u64 flags, struct task_struct *tsk) in copy_namespaces() argument
173 if (likely(!(flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | in copy_namespaces()
176 if ((flags & CLONE_VM) || in copy_namespaces()
191 if ((flags & (CLONE_NEWIPC | CLONE_SYSVSEM)) == in copy_namespaces()
195 new_ns = create_new_namespaces(flags, tsk, user_ns, tsk->fs); in copy_namespaces()
199 if ((flags & CLONE_VM) == 0) in copy_namespaces()
293 static int check_setns_flags(unsigned long flags) in check_setns_flags() argument
295 if (!flags || (flags & ~(CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | in check_setns_flags()
301 if (flags & CLONE_NEWUSER) in check_setns_flags()
305 if (flags & CLONE_NEWPID) in check_setns_flags()
309 if (flags & CLONE_NEWUTS) in check_setns_flags()
313 if (flags & CLONE_NEWIPC) in check_setns_flags()
317 if (flags & CLONE_NEWCGROUP) in check_setns_flags()
321 if (flags & CLONE_NEWNET) in check_setns_flags()
325 if (flags & CLONE_NEWTIME) in check_setns_flags()
334 unsigned flags = nsset->flags; in put_nsset() local
336 if (flags & CLONE_NEWUSER) in put_nsset()
342 if (nsset->fs && (flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS)) in put_nsset()
348 static int prepare_nsset(unsigned flags, struct nsset *nsset) in prepare_nsset() argument
356 if (flags & CLONE_NEWUSER) in prepare_nsset()
364 if (flags == CLONE_NEWNS) { in prepare_nsset()
366 } else if (flags & CLONE_NEWNS) { in prepare_nsset()
372 nsset->flags = flags; in prepare_nsset()
395 unsigned flags = nsset->flags; in validate_nsset() local
425 if (flags & CLONE_NEWPID) { in validate_nsset()
437 if (flags & CLONE_NEWUSER) in validate_nsset()
449 if (flags & CLONE_NEWUSER) { in validate_nsset()
456 if (flags & CLONE_NEWNS) { in validate_nsset()
463 if (flags & CLONE_NEWUTS) { in validate_nsset()
471 if (flags & CLONE_NEWIPC) { in validate_nsset()
479 if (flags & CLONE_NEWPID) { in validate_nsset()
487 if (flags & CLONE_NEWCGROUP) { in validate_nsset()
495 if (flags & CLONE_NEWNET) { in validate_nsset()
503 if (flags & CLONE_NEWTIME) { in validate_nsset()
531 unsigned flags = nsset->flags; in commit_nsset() local
535 if (flags & CLONE_NEWUSER) { in commit_nsset()
543 if ((flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS)) { in commit_nsset()
549 if (flags & CLONE_NEWIPC) in commit_nsset()
554 if (flags & CLONE_NEWTIME) in commit_nsset()
563 SYSCALL_DEFINE2(setns, int, fd, int, flags) in SYSCALL_DEFINE2() argument
575 if (flags && (ns->ns_type != flags)) in SYSCALL_DEFINE2()
577 flags = ns->ns_type; in SYSCALL_DEFINE2()
579 err = check_setns_flags(flags); in SYSCALL_DEFINE2()
586 err = prepare_nsset(flags, &nsset); in SYSCALL_DEFINE2()