[PATCH 3/7] proc: Introduce the Children: line in /proc/<pid>/status

Serge E. Hallyn serge.hallyn at canonical.com
Thu Jul 21 08:54:11 PDT 2011


Quoting Pavel Emelyanov (xemul at 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 at parallels.com>.

Mind you status is getting long :)  But I see no problem with the
patch technically, and it seems useful if we're going to go the
user-space-checkpoint route.

Acked-by: Serge Hallyn <serge.hallyn at canonical.com>

> ---
>  fs/proc/array.c |   14 ++++++++++++++
>  1 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/proc/array.c b/fs/proc/array.c
> index 5e4f776..f01f480 100644
> --- a/fs/proc/array.c
> +++ b/fs/proc/array.c
> @@ -158,6 +158,18 @@ static inline const char *get_task_state(struct task_struct *tsk)
>  	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_file *m, struct pid_namespace *ns,
>  		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);
> -- 
> 1.5.5.6
> _______________________________________________
> Containers mailing list
> Containers at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers


More information about the Containers mailing list