Bug#570350: pid_ns child_reaper fixes for 2.6.26
On 06/29, Ben Hutchings wrote:
>
> I've attempted to cherry-pick and adjust these for 2.6.26; patches
> below. Do these look reasonable or are additional changes required?
Confused. please see below.
> Subject: [PATCH 1/2] pid_ns: zap_pid_ns_processes: fix the ->child_reaper changing
>
> commit add0d4dfd660e9e4fd0af3eac3cad23583c9558f upstream.
> ...
>
> @@ -182,9 +182,12 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
> rc = sys_wait4(-1, NULL, __WALL, NULL);
> } while (rc != -ECHILD);
>
> -
> - /* Child reaper for the pid namespace is going away */
> - pid_ns->child_reaper = NULL;
> + /*
> + * We can not clear ->child_reaper or leave it alone.
> + * There may by stealth EXIT_DEAD tasks on ->children,
> + * forget_original_parent() must move them somewhere.
> + */
> + pid_ns->child_reaper = init_pid_ns.child_reaper;
This is correct, but the second patch
> @@ -182,12 +182,6 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
> rc = sys_wait4(-1, NULL, __WALL, NULL);
> } while (rc != -ECHILD);
>
> - /*
> - * We can not clear ->child_reaper or leave it alone.
> - * There may by stealth EXIT_DEAD tasks on ->children,
> - * forget_original_parent() must move them somewhere.
> - */
> - pid_ns->child_reaper = init_pid_ns.child_reaper;
Removes this code?
This doesn't look right, or I missed something.
I think you are right, you need these 2 commits
950bbabb5a804690a0201190de5c22837f72f83f
add0d4dfd660e9e4fd0af3eac3cad23583c9558f
(in that order). I'd suggest you to adjust these commits and make
a single patch. In that case I can try to see if it is correct
against the 2.6.26.
Oleg.
Reply to: