mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
kernel/exit.c: Use list_for_each_entry(_safe) instead of list_for_each(_safe)
kernel/exit.c: Convert list_for_each(_safe) to list_for_each_entry(_safe) in forget_original_parent(), exit_notify() and do_wait() Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d473012710
commit
03ff17979c
1 changed files with 6 additions and 13 deletions
|
@ -669,8 +669,7 @@ reparent_thread(struct task_struct *p, struct task_struct *father, int traced)
|
|||
static void
|
||||
forget_original_parent(struct task_struct *father, struct list_head *to_release)
|
||||
{
|
||||
struct task_struct *p, *reaper = father;
|
||||
struct list_head *_p, *_n;
|
||||
struct task_struct *p, *n, *reaper = father;
|
||||
|
||||
do {
|
||||
reaper = next_thread(reaper);
|
||||
|
@ -688,9 +687,8 @@ forget_original_parent(struct task_struct *father, struct list_head *to_release)
|
|||
*
|
||||
* Search them and reparent children.
|
||||
*/
|
||||
list_for_each_safe(_p, _n, &father->children) {
|
||||
list_for_each_entry_safe(p, n, &father->children, sibling) {
|
||||
int ptrace;
|
||||
p = list_entry(_p, struct task_struct, sibling);
|
||||
|
||||
ptrace = p->ptrace;
|
||||
|
||||
|
@ -718,8 +716,7 @@ forget_original_parent(struct task_struct *father, struct list_head *to_release)
|
|||
if (unlikely(ptrace && p->exit_state == EXIT_ZOMBIE && p->exit_signal == -1))
|
||||
list_add(&p->ptrace_list, to_release);
|
||||
}
|
||||
list_for_each_safe(_p, _n, &father->ptrace_children) {
|
||||
p = list_entry(_p, struct task_struct, ptrace_list);
|
||||
list_for_each_entry_safe(p, n, &father->ptrace_children, ptrace_list) {
|
||||
p->real_parent = reaper;
|
||||
reparent_thread(p, father, 1);
|
||||
}
|
||||
|
@ -1518,12 +1515,9 @@ repeat:
|
|||
tsk = current;
|
||||
do {
|
||||
struct task_struct *p;
|
||||
struct list_head *_p;
|
||||
int ret;
|
||||
|
||||
list_for_each(_p,&tsk->children) {
|
||||
p = list_entry(_p, struct task_struct, sibling);
|
||||
|
||||
list_for_each_entry(p, &tsk->children, sibling) {
|
||||
ret = eligible_child(pid, options, p);
|
||||
if (!ret)
|
||||
continue;
|
||||
|
@ -1605,9 +1599,8 @@ check_continued:
|
|||
}
|
||||
}
|
||||
if (!flag) {
|
||||
list_for_each(_p, &tsk->ptrace_children) {
|
||||
p = list_entry(_p, struct task_struct,
|
||||
ptrace_list);
|
||||
list_for_each_entry(p, &tsk->ptrace_children,
|
||||
ptrace_list) {
|
||||
if (!eligible_child(pid, options, p))
|
||||
continue;
|
||||
flag = 1;
|
||||
|
|
Loading…
Reference in a new issue