diff options
Diffstat (limited to 'fs/proc/base.c')
-rw-r--r-- | fs/proc/base.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index 69bb70351b9b..5bc587049b37 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -2604,9 +2604,6 @@ static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid) | |||
2604 | dput(dentry); | 2604 | dput(dentry); |
2605 | } | 2605 | } |
2606 | 2606 | ||
2607 | if (tgid == 0) | ||
2608 | goto out; | ||
2609 | |||
2610 | name.name = buf; | 2607 | name.name = buf; |
2611 | name.len = snprintf(buf, sizeof(buf), "%d", tgid); | 2608 | name.len = snprintf(buf, sizeof(buf), "%d", tgid); |
2612 | leader = d_hash_and_lookup(mnt->mnt_root, &name); | 2609 | leader = d_hash_and_lookup(mnt->mnt_root, &name); |
@@ -2663,17 +2660,16 @@ out: | |||
2663 | void proc_flush_task(struct task_struct *task) | 2660 | void proc_flush_task(struct task_struct *task) |
2664 | { | 2661 | { |
2665 | int i; | 2662 | int i; |
2666 | struct pid *pid, *tgid = NULL; | 2663 | struct pid *pid, *tgid; |
2667 | struct upid *upid; | 2664 | struct upid *upid; |
2668 | 2665 | ||
2669 | pid = task_pid(task); | 2666 | pid = task_pid(task); |
2670 | if (thread_group_leader(task)) | 2667 | tgid = task_tgid(task); |
2671 | tgid = task_tgid(task); | ||
2672 | 2668 | ||
2673 | for (i = 0; i <= pid->level; i++) { | 2669 | for (i = 0; i <= pid->level; i++) { |
2674 | upid = &pid->numbers[i]; | 2670 | upid = &pid->numbers[i]; |
2675 | proc_flush_task_mnt(upid->ns->proc_mnt, upid->nr, | 2671 | proc_flush_task_mnt(upid->ns->proc_mnt, upid->nr, |
2676 | tgid ? tgid->numbers[i].nr : 0); | 2672 | tgid->numbers[i].nr); |
2677 | } | 2673 | } |
2678 | 2674 | ||
2679 | upid = &pid->numbers[pid->level]; | 2675 | upid = &pid->numbers[pid->level]; |