diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-17 20:29:36 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-17 20:29:36 -0500 |
commit | 48ba620aab90f4c7e9bb002e2f30863a4ea0f915 (patch) | |
tree | f1171deeea38d62016fe6abf6d85f5632fe93ae9 /kernel | |
parent | 8f211b6ccc01d058fc6c6466c7815f2315130b2e (diff) | |
parent | 41301ae78a99ead04ea42672a1ab72c6f44cc81d (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull namespace fixes from Eric Biederman:
"This is a set of 3 regression fixes.
This fixes /proc/mounts when using "ip netns add <netns>" to display
the actual mount point.
This fixes a regression in clone that broke lxc-attach.
This fixes a regression in the permission checks for mounting /proc
that made proc unmountable if binfmt_misc was in use. Oops.
My apologies for sending this pull request so late. Al Viro gave
interesting review comments about the d_path fix that I wanted to
address in detail before I sent this pull request. Unfortunately a
bad round of colds kept from addressing that in detail until today.
The executive summary of the review was:
Al: Is patching d_path really sufficient?
The prepend_path, d_path, d_absolute_path, and __d_path family of
functions is a really mess.
Me: Yes, patching d_path is really sufficient. Yes, the code is mess.
No it is not appropriate to rewrite all of d_path for a regression
that has existed for entirely too long already, when a two line
change will do"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
vfs: Fix a regression in mounting proc
fork: Allow CLONE_PARENT after setns(CLONE_NEWPID)
vfs: In d_path don't call d_dname on a mount point
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 5721f0e3f2da..dfa736c98d17 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1172,7 +1172,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1172 | * do not allow it to share a thread group or signal handlers or | 1172 | * do not allow it to share a thread group or signal handlers or |
1173 | * parent with the forking task. | 1173 | * parent with the forking task. |
1174 | */ | 1174 | */ |
1175 | if (clone_flags & (CLONE_SIGHAND | CLONE_PARENT)) { | 1175 | if (clone_flags & CLONE_SIGHAND) { |
1176 | if ((clone_flags & (CLONE_NEWUSER | CLONE_NEWPID)) || | 1176 | if ((clone_flags & (CLONE_NEWUSER | CLONE_NEWPID)) || |
1177 | (task_active_pid_ns(current) != | 1177 | (task_active_pid_ns(current) != |
1178 | current->nsproxy->pid_ns_for_children)) | 1178 | current->nsproxy->pid_ns_for_children)) |