From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932741Ab1JNLFc (ORCPT ); Fri, 14 Oct 2011 07:05:32 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:59862 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932068Ab1JNLF3 (ORCPT ); Fri, 14 Oct 2011 07:05:29 -0400 Message-Id: <20111014110511.157239709@openvz.org> User-Agent: quilt/0.48-1 Date: Fri, 14 Oct 2011 15:04:17 +0400 From: Cyrill Gorcunov To: linux-kernel@vger.kernel.org Cc: Andrew Vagin , Pavel Emelyanov , James Bottomley , Glauber Costa , "H. Peter Anvin" , Ingo Molnar , Tejun Heo , Dave Hansen , "Eric W. Biederman" , Daniel Lezcano , Alexey Dobriyan , Serge Hallyn , Cyrill Gorcunov Subject: [patch 1/5] proc: Introduce the Children: line in /proc//status References: <20111014110416.552685686@openvz.org> Content-Disposition: inline; filename=cr-proc-add-children Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Pavel Emelyanov 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 Acked-by: Serge Hallyn Signed-off-by: Cyrill Gorcunov --- 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);