[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: