Lines Matching defs:father
383 /* exit: our father is in a different pgrp than
585 static struct task_struct *find_child_reaper(struct task_struct *father,
590 struct pid_namespace *pid_ns = task_active_pid_ns(father);
594 if (likely(reaper != father))
597 reaper = find_alive_thread(father);
613 return father;
623 static struct task_struct *find_new_reaper(struct task_struct *father,
628 thread = find_alive_thread(father);
632 if (father->signal->has_child_subreaper) {
633 unsigned int ns_level = task_pid(father)->level;
640 * task_active_pid_ns(reaper) != task_active_pid_ns(father).
642 for (reaper = father->real_parent;
661 static void reparent_leader(struct task_struct *father, struct task_struct *p,
679 kill_orphaned_pgrp(p, father);
690 static void forget_original_parent(struct task_struct *father,
695 if (unlikely(!list_empty(&father->ptraced)))
696 exit_ptrace(father, dead);
699 reaper = find_child_reaper(father, dead);
700 if (list_empty(&father->children))
703 reaper = find_new_reaper(father, reaper);
704 list_for_each_entry(p, &father->children, sibling) {
707 BUG_ON((!t->ptrace) != (rcu_access_pointer(t->parent) == father));
719 if (!same_thread_group(reaper, father))
720 reparent_leader(father, p, dead);
722 list_splice_tail_init(&father->children, &reaper->children);