Messages in this thread Patch in this message | | | Date | Mon, 8 Aug 2011 01:20:31 +0400 | From | Cyrill Gorcunov <> | Subject | [patch 3/4] proc: Introduce the Children: line in /proc/<pid>/status |
| |
From: Pavel Emelyanov <xemul@parallels.com>
Although we can get the pids of some task's issue, this is just more convenient to have them this way.
Signed-off-by: Pavel Emelyanov <xemul@parallels.com> Acked-by: Serge Hallyn <serge.hallyn@canonical.com> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> --- fs/proc/array.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Index: linux-2.6.git/fs/proc/array.c =================================================================== --- linux-2.6.git.orig/fs/proc/array.c +++ linux-2.6.git/fs/proc/array.c @@ -158,6 +158,18 @@ static inline const char *get_task_state return *p; } +static void task_children(struct seq_file *m, struct task_struct *p, struct pid_namespace *ns) +{ + struct task_struct *c; + + seq_printf(m, "Children:"); + read_lock(&tasklist_lock); + list_for_each_entry(c, &p->children, sibling) + seq_printf(m, " %d", pid_nr_ns(task_pid(c), ns)); + read_unlock(&tasklist_lock); + seq_putc(m, '\n'); +} + static inline void task_state(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *p) { @@ -192,6 +204,8 @@ static inline void task_state(struct seq cred->uid, cred->euid, cred->suid, cred->fsuid, cred->gid, cred->egid, cred->sgid, cred->fsgid); + task_children(m, p, ns); + task_lock(p); if (p->files) fdt = files_fdtable(p->files);
| |