Lines Matching refs:flags
67 static struct nsproxy *create_new_namespaces(unsigned long flags, in create_new_namespaces() argument
78 new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, user_ns, new_fs); in create_new_namespaces()
84 new_nsp->uts_ns = copy_utsname(flags, user_ns, tsk->nsproxy->uts_ns); in create_new_namespaces()
90 new_nsp->ipc_ns = copy_ipcs(flags, user_ns, tsk->nsproxy->ipc_ns); in create_new_namespaces()
97 copy_pid_ns(flags, user_ns, tsk->nsproxy->pid_ns_for_children); in create_new_namespaces()
103 new_nsp->cgroup_ns = copy_cgroup_ns(flags, user_ns, in create_new_namespaces()
110 new_nsp->net_ns = copy_net_ns(flags, user_ns, tsk->nsproxy->net_ns); in create_new_namespaces()
116 new_nsp->time_ns_for_children = copy_time_ns(flags, user_ns, in create_new_namespaces()
147 int copy_namespaces(unsigned long flags, struct task_struct *tsk) in copy_namespaces() argument
153 if (likely(!(flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | in copy_namespaces()
156 if ((flags & CLONE_VM) || in copy_namespaces()
171 if ((flags & (CLONE_NEWIPC | CLONE_SYSVSEM)) == in copy_namespaces()
175 new_ns = create_new_namespaces(flags, tsk, user_ns, tsk->fs); in copy_namespaces()
179 if ((flags & CLONE_VM) == 0) in copy_namespaces()
266 static int check_setns_flags(unsigned long flags) in check_setns_flags() argument
268 if (!flags || (flags & ~(CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | in check_setns_flags()
274 if (flags & CLONE_NEWUSER) in check_setns_flags()
278 if (flags & CLONE_NEWPID) in check_setns_flags()
282 if (flags & CLONE_NEWUTS) in check_setns_flags()
286 if (flags & CLONE_NEWIPC) in check_setns_flags()
290 if (flags & CLONE_NEWCGROUP) in check_setns_flags()
294 if (flags & CLONE_NEWNET) in check_setns_flags()
298 if (flags & CLONE_NEWTIME) in check_setns_flags()
307 unsigned flags = nsset->flags; in put_nsset() local
309 if (flags & CLONE_NEWUSER) in put_nsset()
315 if (nsset->fs && (flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS)) in put_nsset()
321 static int prepare_nsset(unsigned flags, struct nsset *nsset) in prepare_nsset() argument
329 if (flags & CLONE_NEWUSER) in prepare_nsset()
337 if (flags == CLONE_NEWNS) { in prepare_nsset()
339 } else if (flags & CLONE_NEWNS) { in prepare_nsset()
345 nsset->flags = flags; in prepare_nsset()
368 unsigned flags = nsset->flags; in validate_nsset() local
398 if (flags & CLONE_NEWPID) { in validate_nsset()
410 if (flags & CLONE_NEWUSER) in validate_nsset()
422 if (flags & CLONE_NEWUSER) { in validate_nsset()
429 if (flags & CLONE_NEWNS) { in validate_nsset()
436 if (flags & CLONE_NEWUTS) { in validate_nsset()
444 if (flags & CLONE_NEWIPC) { in validate_nsset()
452 if (flags & CLONE_NEWPID) { in validate_nsset()
460 if (flags & CLONE_NEWCGROUP) { in validate_nsset()
468 if (flags & CLONE_NEWNET) { in validate_nsset()
476 if (flags & CLONE_NEWTIME) { in validate_nsset()
504 unsigned flags = nsset->flags; in commit_nsset() local
508 if (flags & CLONE_NEWUSER) { in commit_nsset()
516 if ((flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS)) { in commit_nsset()
522 if (flags & CLONE_NEWIPC) in commit_nsset()
527 if (flags & CLONE_NEWTIME) in commit_nsset()
536 SYSCALL_DEFINE2(setns, int, fd, int, flags) in SYSCALL_DEFINE2() argument
548 if (flags && (ns->ops->type != flags)) in SYSCALL_DEFINE2()
550 flags = ns->ops->type; in SYSCALL_DEFINE2()
552 err = check_setns_flags(flags); in SYSCALL_DEFINE2()
559 err = prepare_nsset(flags, &nsset); in SYSCALL_DEFINE2()