de_thread() checks if the old leader was the ->child_reaper, this is not
possible any longer. With the previous patch ->group_leader itself will
change ->child_reaper on exit.
>From now find_new_reaper() is the only function (apart from initialization)
which plays with ->child_reaper.
Signed-off-by: Oleg Nesterov <[email protected]>
--- 2.6.27-rc4/fs/exec.c~3_EXEC 2008-07-30 13:12:47.000000000 +0400
+++ 2.6.27-rc4/fs/exec.c 2008-08-24 19:20:05.000000000 +0400
@@ -825,8 +825,6 @@ static int de_thread(struct task_struct
schedule();
}
- if (unlikely(task_child_reaper(tsk) == leader))
- task_active_pid_ns(tsk)->child_reaper = tsk;
/*
* The only record we have of the real-time age of a
* process, regardless of execs it's done, is start_time.
Quoting Oleg Nesterov ([email protected]):
> de_thread() checks if the old leader was the ->child_reaper, this is not
> possible any longer. With the previous patch ->group_leader itself will
> change ->child_reaper on exit.
Neat.
> >From now find_new_reaper() is the only function (apart from initialization)
> which plays with ->child_reaper.
>
> Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
>
> --- 2.6.27-rc4/fs/exec.c~3_EXEC 2008-07-30 13:12:47.000000000 +0400
> +++ 2.6.27-rc4/fs/exec.c 2008-08-24 19:20:05.000000000 +0400
> @@ -825,8 +825,6 @@ static int de_thread(struct task_struct
> schedule();
> }
>
> - if (unlikely(task_child_reaper(tsk) == leader))
> - task_active_pid_ns(tsk)->child_reaper = tsk;
> /*
> * The only record we have of the real-time age of a
> * process, regardless of execs it's done, is start_time.
Oleg Nesterov wrote:
> de_thread() checks if the old leader was the ->child_reaper, this is not
> possible any longer. With the previous patch ->group_leader itself will
> change ->child_reaper on exit.
>
>>From now find_new_reaper() is the only function (apart from initialization)
> which plays with ->child_reaper.
>
> Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Pavel Emelyanov <[email protected]>
Oleg Nesterov [[email protected]] wrote:
| de_thread() checks if the old leader was the ->child_reaper, this is not
| possible any longer. With the previous patch ->group_leader itself will
| change ->child_reaper on exit.
|
| >From now find_new_reaper() is the only function (apart from initialization)
| which plays with ->child_reaper.
|
| Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Sukadev Bhattiprolu <[email protected]>