diff options
author | Len Brown <len.brown@intel.com> | 2009-04-05 02:14:15 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-04-05 02:14:15 -0400 |
commit | 478c6a43fcbc6c11609f8cee7c7b57223907754f (patch) | |
tree | a7f7952099da60d33032aed6de9c0c56c9f8779e /kernel/pid_namespace.c | |
parent | 8a3f257c704e02aee9869decd069a806b45be3f1 (diff) | |
parent | 6bb597507f9839b13498781e481f5458aea33620 (diff) |
Merge branch 'linus' into release
Conflicts:
arch/x86/kernel/cpu/cpufreq/longhaul.c
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'kernel/pid_namespace.c')
-rw-r--r-- | kernel/pid_namespace.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index fab8ea86fac3..2d1001b4858d 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c | |||
@@ -152,6 +152,7 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns) | |||
152 | { | 152 | { |
153 | int nr; | 153 | int nr; |
154 | int rc; | 154 | int rc; |
155 | struct task_struct *task; | ||
155 | 156 | ||
156 | /* | 157 | /* |
157 | * The last thread in the cgroup-init thread group is terminating. | 158 | * The last thread in the cgroup-init thread group is terminating. |
@@ -169,7 +170,19 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns) | |||
169 | read_lock(&tasklist_lock); | 170 | read_lock(&tasklist_lock); |
170 | nr = next_pidmap(pid_ns, 1); | 171 | nr = next_pidmap(pid_ns, 1); |
171 | while (nr > 0) { | 172 | while (nr > 0) { |
172 | kill_proc_info(SIGKILL, SEND_SIG_PRIV, nr); | 173 | rcu_read_lock(); |
174 | |||
175 | /* | ||
176 | * Use force_sig() since it clears SIGNAL_UNKILLABLE ensuring | ||
177 | * any nested-container's init processes don't ignore the | ||
178 | * signal | ||
179 | */ | ||
180 | task = pid_task(find_vpid(nr), PIDTYPE_PID); | ||
181 | if (task) | ||
182 | force_sig(SIGKILL, task); | ||
183 | |||
184 | rcu_read_unlock(); | ||
185 | |||
173 | nr = next_pidmap(pid_ns, nr); | 186 | nr = next_pidmap(pid_ns, nr); |
174 | } | 187 | } |
175 | read_unlock(&tasklist_lock); | 188 | read_unlock(&tasklist_lock); |