Skip to content

Commit

Permalink
Use find_task_by_vpid in taskstats
Browse files Browse the repository at this point in the history
The pid to lookup a task by is passed inside taskstats code via genetlink
message.

Since netlink packets are now processed in the context of the sending task,
this is correct to lookup the task with find_task_by_vpid() here.

Besides, I fix the call to fill_pid() from taskstats_exit(), since the
tsk->pid is not required in fill_pid() in this case, and the pid field on
task_struct is going to be deprecated as well.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Jay Lan <jlan@engr.sgi.com>
Cc: Jonathan Lim <jlim@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Pavel Emelyanov authored and Linus Torvalds committed Apr 30, 2008
1 parent b7127aa commit cb41d6d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions kernel/taskstats.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ static int fill_pid(pid_t pid, struct task_struct *tsk,

if (!tsk) {
rcu_read_lock();
tsk = find_task_by_pid(pid);
tsk = find_task_by_vpid(pid);
if (tsk)
get_task_struct(tsk);
rcu_read_unlock();
Expand Down Expand Up @@ -230,7 +230,7 @@ static int fill_tgid(pid_t tgid, struct task_struct *first,
*/
rcu_read_lock();
if (!first)
first = find_task_by_pid(tgid);
first = find_task_by_vpid(tgid);

if (!first || !lock_task_sighand(first, &flags))
goto out;
Expand Down Expand Up @@ -547,7 +547,7 @@ void taskstats_exit(struct task_struct *tsk, int group_dead)
if (!stats)
goto err;

rc = fill_pid(tsk->pid, tsk, stats);
rc = fill_pid(-1, tsk, stats);
if (rc < 0)
goto err;

Expand Down

0 comments on commit cb41d6d

Please sign in to comment.