diff options
-rw-r--r-- | include/linux/pid_namespace.h | 6 | ||||
-rw-r--r-- | kernel/fork.c | 4 | ||||
-rw-r--r-- | kernel/pid.c | 6 |
3 files changed, 9 insertions, 7 deletions
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index d82fe825d62f..38d10326246a 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
@@ -79,11 +79,7 @@ static inline void zap_pid_ns_processes(struct pid_namespace *ns) | |||
79 | } | 79 | } |
80 | #endif /* CONFIG_PID_NS */ | 80 | #endif /* CONFIG_PID_NS */ |
81 | 81 | ||
82 | static inline struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) | 82 | extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk); |
83 | { | ||
84 | return tsk->nsproxy->pid_ns; | ||
85 | } | ||
86 | |||
87 | void pidhash_init(void); | 83 | void pidhash_init(void); |
88 | void pidmap_init(void); | 84 | void pidmap_init(void); |
89 | 85 | ||
diff --git a/kernel/fork.c b/kernel/fork.c index 7b8f2a78be3d..4018308048cf 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1126,12 +1126,12 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1126 | 1126 | ||
1127 | if (pid != &init_struct_pid) { | 1127 | if (pid != &init_struct_pid) { |
1128 | retval = -ENOMEM; | 1128 | retval = -ENOMEM; |
1129 | pid = alloc_pid(task_active_pid_ns(p)); | 1129 | pid = alloc_pid(p->nsproxy->pid_ns); |
1130 | if (!pid) | 1130 | if (!pid) |
1131 | goto bad_fork_cleanup_io; | 1131 | goto bad_fork_cleanup_io; |
1132 | 1132 | ||
1133 | if (clone_flags & CLONE_NEWPID) { | 1133 | if (clone_flags & CLONE_NEWPID) { |
1134 | retval = pid_ns_prepare_proc(task_active_pid_ns(p)); | 1134 | retval = pid_ns_prepare_proc(p->nsproxy->pid_ns); |
1135 | if (retval < 0) | 1135 | if (retval < 0) |
1136 | goto bad_fork_free_pid; | 1136 | goto bad_fork_free_pid; |
1137 | } | 1137 | } |
diff --git a/kernel/pid.c b/kernel/pid.c index af9224cdd6c0..1b3586fe753a 100644 --- a/kernel/pid.c +++ b/kernel/pid.c | |||
@@ -474,6 +474,12 @@ pid_t task_session_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) | |||
474 | } | 474 | } |
475 | EXPORT_SYMBOL(task_session_nr_ns); | 475 | EXPORT_SYMBOL(task_session_nr_ns); |
476 | 476 | ||
477 | struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) | ||
478 | { | ||
479 | return ns_of_pid(task_pid(tsk)); | ||
480 | } | ||
481 | EXPORT_SYMBOL_GPL(task_active_pid_ns); | ||
482 | |||
477 | /* | 483 | /* |
478 | * Used by proc to find the first pid that is greater than or equal to nr. | 484 | * Used by proc to find the first pid that is greater than or equal to nr. |
479 | * | 485 | * |