diff options
author | Oleg Nesterov <oleg@redhat.com> | 2012-03-05 17:59:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-05 18:49:42 -0500 |
commit | 6e27f63edbd7ab893258e16500171dd1270a1369 (patch) | |
tree | 9c61b7c0dda37052e2285e90f914f8af5ed86f67 /kernel/fork.c | |
parent | 57b59c4a1400fa6c34764eab2e35a8762dc05a09 (diff) |
vfork: kill PF_STARTING
Previously it was (ab)used by utrace. Then it was wrongly used by the
scheduler code.
Currently it is not used, kill it before it finds the new erroneous user.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 44b0e21af50e..26a7a6707fa7 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1046,7 +1046,6 @@ static void copy_flags(unsigned long clone_flags, struct task_struct *p) | |||
1046 | 1046 | ||
1047 | new_flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER); | 1047 | new_flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER); |
1048 | new_flags |= PF_FORKNOEXEC; | 1048 | new_flags |= PF_FORKNOEXEC; |
1049 | new_flags |= PF_STARTING; | ||
1050 | p->flags = new_flags; | 1049 | p->flags = new_flags; |
1051 | } | 1050 | } |
1052 | 1051 | ||
@@ -1579,14 +1578,6 @@ long do_fork(unsigned long clone_flags, | |||
1579 | get_task_struct(p); | 1578 | get_task_struct(p); |
1580 | } | 1579 | } |
1581 | 1580 | ||
1582 | /* | ||
1583 | * We set PF_STARTING at creation in case tracing wants to | ||
1584 | * use this to distinguish a fully live task from one that | ||
1585 | * hasn't finished SIGSTOP raising yet. Now we clear it | ||
1586 | * and set the child going. | ||
1587 | */ | ||
1588 | p->flags &= ~PF_STARTING; | ||
1589 | |||
1590 | wake_up_new_task(p); | 1581 | wake_up_new_task(p); |
1591 | 1582 | ||
1592 | /* forking complete and child started to run, tell ptracer */ | 1583 | /* forking complete and child started to run, tell ptracer */ |