Question: copy_process() and CLONE_NEWNS
Tobias Boege
tobias at gambas-buch.de
Fri Feb 1 06:58:01 EST 2013
On Fri, 01 Feb 2013, Kevin Wilson wrote:
> Hi all,
> question:
>
> In copy_process() we have:
>
> static struct task_struct *copy_process(unsigned long clone_flags,
> unsigned long stack_start,
> struct pt_regs *regs,
> unsigned long stack_size,
> int __user *child_tidptr,
> struct pid *pid,
> int trace)
> {
> int retval;
> struct task_struct *p;
> int cgroup_callbacks_done = 0;
>
> if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
> return ERR_PTR(-EINVAL);
> ...
> ...
>
>
> see :http://lxr.free-electrons.com/source/kernel/fork.c#L1128
>
> Why is the CLONE_NEWNS, when set, cause an error in copy_process(), as
> shown above ?
> is it not permitted that CLONE_NEWNS will be set ?
It seems so :-)
clone(2)'s manpage also says:
"It is not permitted to specify both CLONE_NEWNS and CLONE_FS in the same
clone() call."
Regards,
Tobi
More information about the Kernelnewbies
mailing list