aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/proc/base.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 5ee46d3a5cac..43871c85729d 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2267,15 +2267,15 @@ out:
2267 */ 2267 */
2268static struct task_struct *next_tid(struct task_struct *start) 2268static struct task_struct *next_tid(struct task_struct *start)
2269{ 2269{
2270 struct task_struct *pos; 2270 struct task_struct *pos = NULL;
2271 rcu_read_lock(); 2271 rcu_read_lock();
2272 pos = start; 2272 if (pid_alive(start)) {
2273 if (pid_alive(start))
2274 pos = next_thread(start); 2273 pos = next_thread(start);
2275 if (pid_alive(pos) && (pos != start->group_leader)) 2274 if (thread_group_leader(pos))
2276 get_task_struct(pos); 2275 pos = NULL;
2277 else 2276 else
2278 pos = NULL; 2277 get_task_struct(pos);
2278 }
2279 rcu_read_unlock(); 2279 rcu_read_unlock();
2280 put_task_struct(start); 2280 put_task_struct(start);
2281 return pos; 2281 return pos;