[PATCH 15/15] Hooks over the code to show correct values to user

Pavel Emelyanov xemul at openvz.org
Thu Jul 26 23:44:54 PDT 2007


sukadev at us.ibm.com wrote:
> Pavel Emelianov [xemul at openvz.org] wrote:
> | diff -upr linux-2.6.23-rc1-mm1.orig/fs/proc/array.c 
> | linux-2.6.23-rc1-mm1-7/fs/proc/array.c
> | --- linux-2.6.23-rc1-mm1.orig/fs/proc/array.c	2007-07-26 
> | 16:34:45.000000000 +0400
> | +++ linux-2.6.23-rc1-mm1-7/fs/proc/array.c	2007-07-26 
> | 16:36:36.000000000 +0400
> | @@ -77,6 +77,7 @@
> | #include <linux/cpuset.h>
> | #include <linux/rcupdate.h>
> | #include <linux/delayacct.h>
> | +#include <linux/pid_namespace.h>
> | 
> | #include <asm/pgtable.h>
> | #include <asm/processor.h>
> | @@ -161,7 +162,9 @@ static inline char *task_state(struct ta
> | 	struct group_info *group_info;
> | 	int g;
> | 	struct fdtable *fdt = NULL;
> | +	struct pid_namespace *ns;
> | 
> | +	ns = current->nsproxy->pid_ns;
> | 	rcu_read_lock();
> | 	buffer += sprintf(buffer,
> | 		"State:\t%s\n"
> | @@ -172,9 +175,12 @@ static inline char *task_state(struct ta
> | 		"Uid:\t%d\t%d\t%d\t%d\n"
> | 		"Gid:\t%d\t%d\t%d\t%d\n",
> | 		get_task_state(p),
> | -		p->tgid, p->pid,
> | -		pid_alive(p) ? rcu_dereference(p->real_parent)->tgid : 0,
> | -		pid_alive(p) && p->ptrace ? rcu_dereference(p->parent)->pid 
> | : 0,
> | +	       	task_tgid_nr_ns(p, ns),
> | +		task_pid_nr_ns(p, ns),
> | +	       	pid_alive(p) ?
> | +			task_ppid_nr_ns(p, ns) : 0,
> | +		pid_alive(p) && p->ptrace ?
> | +			task_tgid_nr_ns(rcu_dereference(p->parent), ns) : 0,
> 
> Hmm. I think we have this reversed here. We should print the 'tgid' of
> task->real_parent and 'pid' of task->parent.
> 

You mean smth like task_tgid_nr_ns(p->real_parent) ? Yes, thanks :)


More information about the Containers mailing list