diff options
Diffstat (limited to 'fs/proc/array.c')
| -rw-r--r-- | fs/proc/array.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/fs/proc/array.c b/fs/proc/array.c index 7c8d9aecb070..800e30f8f284 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -158,7 +158,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,  	struct group_info *group_info;  	int g;  	const struct cred *cred; -	pid_t ppid, tpid; +	pid_t ppid, tpid, tgid, ngid;  	unsigned int max_fds = 0;  	rcu_read_lock(); @@ -170,12 +170,16 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,  		if (tracer)  			tpid = task_pid_nr_ns(tracer, ns);  	} + +	tgid = task_tgid_nr_ns(p, ns); +	ngid = task_numa_group_id(p);  	cred = get_task_cred(p);  	task_lock(p);  	if (p->files)  		max_fds = files_fdtable(p->files)->max_fds;  	task_unlock(p); +	rcu_read_unlock();  	seq_printf(m,  		"State:\t%s\n" @@ -188,10 +192,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,  		"Gid:\t%d\t%d\t%d\t%d\n"  		"FDSize:\t%d\nGroups:\t",  		get_task_state(p), -		task_tgid_nr_ns(p, ns), -		task_numa_group_id(p), -		pid_nr_ns(pid, ns), -		ppid, tpid, +		tgid, ngid, pid_nr_ns(pid, ns), ppid, tpid,  		from_kuid_munged(user_ns, cred->uid),  		from_kuid_munged(user_ns, cred->euid),  		from_kuid_munged(user_ns, cred->suid), @@ -201,7 +202,6 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,  		from_kgid_munged(user_ns, cred->sgid),  		from_kgid_munged(user_ns, cred->fsgid),  		max_fds); -	rcu_read_unlock();  	group_info = cred->group_info;  	for (g = 0; g < group_info->ngroups; g++) |