<snip> > */ > static void > forget_original_parent(struct task_struct *father, struct list_head *to_release) > @@ -669,7 +670,7 @@ forget_original_parent(struct task_struc > do { > reaper = next_thread(reaper); > if (reaper == father) { > - reaper = child_reaper; > + reaper = father->pspace->child_reaper; > break; > } > } while (reaper->exit_state); > @@ -857,7 +858,7 @@ fastcall NORET_TYPE void do_exit(long co what about killing all the task in that pid space if child_reaper == init dies ? > panic("Aiee, killing interrupt handler!"); > if (unlikely(!tsk->pid)) > panic("Attempted to kill the idle task!"); > - if (unlikely(tsk == child_reaper)) > + if (unlikely(tsk == tsk->pspace->child_reaper)) > panic("Attempted to kill init!"); > > if (unlikely(current->ptrace & PT_TRACE_EXIT)) {