diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-02-15 15:13:52 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-02-15 15:13:52 -0500 |
| commit | 27754b34600770beb38e3ae12cb3f345f02e3797 (patch) | |
| tree | 0a50ad43c1114b40bda056bae13e0b9dd7e4eeb9 /kernel/fork.c | |
| parent | 0ed3f64ec3a7ad29e83e03607115eeffa32f553c (diff) | |
| parent | 5ecfbae093f0c37311e89b29bfc0c9d586eace87 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 8e88b374cee9..fbea12d7a943 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
| @@ -1123,8 +1123,8 @@ static task_t *copy_process(unsigned long clone_flags, | |||
| 1123 | p->real_parent = current; | 1123 | p->real_parent = current; |
| 1124 | p->parent = p->real_parent; | 1124 | p->parent = p->real_parent; |
| 1125 | 1125 | ||
| 1126 | spin_lock(¤t->sighand->siglock); | ||
| 1126 | if (clone_flags & CLONE_THREAD) { | 1127 | if (clone_flags & CLONE_THREAD) { |
| 1127 | spin_lock(¤t->sighand->siglock); | ||
| 1128 | /* | 1128 | /* |
| 1129 | * Important: if an exit-all has been started then | 1129 | * Important: if an exit-all has been started then |
| 1130 | * do not create this new thread - the whole thread | 1130 | * do not create this new thread - the whole thread |
| @@ -1162,8 +1162,6 @@ static task_t *copy_process(unsigned long clone_flags, | |||
| 1162 | */ | 1162 | */ |
| 1163 | p->it_prof_expires = jiffies_to_cputime(1); | 1163 | p->it_prof_expires = jiffies_to_cputime(1); |
| 1164 | } | 1164 | } |
| 1165 | |||
| 1166 | spin_unlock(¤t->sighand->siglock); | ||
| 1167 | } | 1165 | } |
| 1168 | 1166 | ||
| 1169 | /* | 1167 | /* |
| @@ -1175,8 +1173,6 @@ static task_t *copy_process(unsigned long clone_flags, | |||
| 1175 | if (unlikely(p->ptrace & PT_PTRACED)) | 1173 | if (unlikely(p->ptrace & PT_PTRACED)) |
| 1176 | __ptrace_link(p, current->parent); | 1174 | __ptrace_link(p, current->parent); |
| 1177 | 1175 | ||
| 1178 | attach_pid(p, PIDTYPE_PID, p->pid); | ||
| 1179 | attach_pid(p, PIDTYPE_TGID, p->tgid); | ||
| 1180 | if (thread_group_leader(p)) { | 1176 | if (thread_group_leader(p)) { |
| 1181 | p->signal->tty = current->signal->tty; | 1177 | p->signal->tty = current->signal->tty; |
| 1182 | p->signal->pgrp = process_group(current); | 1178 | p->signal->pgrp = process_group(current); |
| @@ -1186,9 +1182,12 @@ static task_t *copy_process(unsigned long clone_flags, | |||
| 1186 | if (p->pid) | 1182 | if (p->pid) |
| 1187 | __get_cpu_var(process_counts)++; | 1183 | __get_cpu_var(process_counts)++; |
| 1188 | } | 1184 | } |
| 1185 | attach_pid(p, PIDTYPE_TGID, p->tgid); | ||
| 1186 | attach_pid(p, PIDTYPE_PID, p->pid); | ||
| 1189 | 1187 | ||
| 1190 | nr_threads++; | 1188 | nr_threads++; |
| 1191 | total_forks++; | 1189 | total_forks++; |
| 1190 | spin_unlock(¤t->sighand->siglock); | ||
| 1192 | write_unlock_irq(&tasklist_lock); | 1191 | write_unlock_irq(&tasklist_lock); |
| 1193 | proc_fork_connector(p); | 1192 | proc_fork_connector(p); |
| 1194 | return p; | 1193 | return p; |
