diff options
author | Oleg Nesterov <oleg@redhat.com> | 2009-06-17 19:27:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 16:03:49 -0400 |
commit | dea33cfd99022d82d923a0c6a3bd895fb6683fb2 (patch) | |
tree | 889ea712abbbb8b8c220dd593383ec6f9ad15ffc | |
parent | 48597760fad3d6a3e30a14241a3ce5ccb1a0e9bc (diff) |
ptrace: mm_need_new_owner: use ->real_parent to search in the siblings
"Search in the siblings" should use ->real_parent, not ->parent. If the
task is traced then ->parent == tracer, while the task's parent is always
->real_parent.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | kernel/exit.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 533e5f85669a..213f906f5e16 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -590,7 +590,7 @@ retry: | |||
590 | /* | 590 | /* |
591 | * Search in the siblings | 591 | * Search in the siblings |
592 | */ | 592 | */ |
593 | list_for_each_entry(c, &p->parent->children, sibling) { | 593 | list_for_each_entry(c, &p->real_parent->children, sibling) { |
594 | if (c->mm == mm) | 594 | if (c->mm == mm) |
595 | goto assign_new_owner; | 595 | goto assign_new_owner; |
596 | } | 596 | } |