Skip to content

Commit

Permalink
Clean up subthread exec
Browse files Browse the repository at this point in the history
Make sure we re-parent itimers, and use BUG_ON() instead of an explicit
conditional BUG().
  • Loading branch information
Linus Torvalds committed Jun 18, 2005
1 parent c83d994 commit c2a0f59
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions fs/exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,7 @@ static inline int de_thread(struct task_struct *tsk)
}
sig->group_exit_task = NULL;
sig->notify_count = 0;
sig->real_timer.data = (unsigned long)current;
spin_unlock_irq(lock);

/*
Expand All @@ -675,10 +676,8 @@ static inline int de_thread(struct task_struct *tsk)
proc_dentry2 = proc_pid_unhash(leader);
write_lock_irq(&tasklist_lock);

if (leader->tgid != current->tgid)
BUG();
if (current->pid == current->tgid)
BUG();
BUG_ON(leader->tgid != current->tgid);
BUG_ON(current->pid == current->tgid);
/*
* An exec() starts a new thread group with the
* TGID of the previous thread group. Rehash the
Expand Down Expand Up @@ -726,8 +725,7 @@ static inline int de_thread(struct task_struct *tsk)
proc_pid_flush(proc_dentry1);
proc_pid_flush(proc_dentry2);

if (exit_state != EXIT_ZOMBIE)
BUG();
BUG_ON(exit_state != EXIT_ZOMBIE);
release_task(leader);
}

Expand Down Expand Up @@ -772,10 +770,8 @@ static inline int de_thread(struct task_struct *tsk)
kmem_cache_free(sighand_cachep, oldsighand);
}

if (!thread_group_empty(current))
BUG();
if (!thread_group_leader(current))
BUG();
BUG_ON(!thread_group_empty(current));
BUG_ON(!thread_group_leader(current));
return 0;
}

Expand Down

0 comments on commit c2a0f59

Please sign in to comment.