Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 84614
b: refs/heads/master
c: ee99274
h: refs/heads/master
v: v3
  • Loading branch information
Eric W. Biederman authored and Linus Torvalds committed Feb 8, 2008
1 parent 2127b3e commit 8a56c47
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: be614086a4aff163d5aa0dc160638d1193b59cde
refs/heads/master: ee992744ea53db0a90c986fd0a70fbbf91e7f8bd
24 changes: 12 additions & 12 deletions trunk/fs/proc/array.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
#include <linux/cpuset.h>
#include <linux/rcupdate.h>
#include <linux/delayacct.h>
#include <linux/seq_file.h>
#include <linux/pid_namespace.h>

#include <asm/pgtable.h>
Expand Down Expand Up @@ -390,14 +391,14 @@ static cputime_t task_gtime(struct task_struct *p)
return p->gtime;
}

static int do_task_stat(struct task_struct *task, char *buffer, int whole)
static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task, int whole)
{
unsigned long vsize, eip, esp, wchan = ~0UL;
long priority, nice;
int tty_pgrp = -1, tty_nr = 0;
sigset_t sigign, sigcatch;
char state;
int res;
pid_t ppid = 0, pgid = -1, sid = -1;
int num_threads = 0;
struct mm_struct *mm;
Expand All @@ -409,9 +410,6 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole)
unsigned long rsslim = 0;
char tcomm[sizeof(task->comm)];
unsigned long flags;
struct pid_namespace *ns;

ns = current->nsproxy->pid_ns;

state = *get_task_state(task);
vsize = eip = esp = 0;
Expand Down Expand Up @@ -498,10 +496,10 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole)
/* convert nsec -> ticks */
start_time = nsec_to_clock_t(start_time);

res = sprintf(buffer, "%d (%s) %c %d %d %d %d %d %u %lu \
seq_printf(m, "%d (%s) %c %d %d %d %d %d %u %lu \
%lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \
%lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld\n",
task_pid_nr_ns(task, ns),
pid_nr_ns(pid, ns),
tcomm,
state,
ppid,
Expand Down Expand Up @@ -550,17 +548,19 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole)
cputime_to_clock_t(cgtime));
if (mm)
mmput(mm);
return res;
return 0;
}

int proc_tid_stat(struct task_struct *task, char *buffer)
int proc_tid_stat(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
return do_task_stat(task, buffer, 0);
return do_task_stat(m, ns, pid, task, 0);
}

int proc_tgid_stat(struct task_struct *task, char *buffer)
int proc_tgid_stat(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task)
{
return do_task_stat(task, buffer, 1);
return do_task_stat(m, ns, pid, task, 1);
}

int proc_pid_statm(struct task_struct *task, char *buffer)
Expand Down
4 changes: 2 additions & 2 deletions trunk/fs/proc/base.c
Original file line number Diff line number Diff line change
Expand Up @@ -2280,7 +2280,7 @@ static const struct pid_entry tgid_base_stuff[] = {
REG("sched", S_IRUGO|S_IWUSR, pid_sched),
#endif
INF("cmdline", S_IRUGO, pid_cmdline),
INF("stat", S_IRUGO, tgid_stat),
ONE("stat", S_IRUGO, tgid_stat),
INF("statm", S_IRUGO, pid_statm),
REG("maps", S_IRUGO, maps),
#ifdef CONFIG_NUMA
Expand Down Expand Up @@ -2611,7 +2611,7 @@ static const struct pid_entry tid_base_stuff[] = {
REG("sched", S_IRUGO|S_IWUSR, pid_sched),
#endif
INF("cmdline", S_IRUGO, pid_cmdline),
INF("stat", S_IRUGO, tid_stat),
ONE("stat", S_IRUGO, tid_stat),
INF("statm", S_IRUGO, pid_statm),
REG("maps", S_IRUGO, maps),
#ifdef CONFIG_NUMA
Expand Down
9 changes: 6 additions & 3 deletions trunk/fs/proc/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,13 @@ extern int nommu_vma_show(struct seq_file *, struct vm_area_struct *);

extern int maps_protect;

extern void create_seq_entry(char *name, mode_t mode, const struct file_operations *f);
extern void create_seq_entry(char *name, mode_t mode,
const struct file_operations *f);
extern int proc_exe_link(struct inode *, struct dentry **, struct vfsmount **);
extern int proc_tid_stat(struct task_struct *, char *);
extern int proc_tgid_stat(struct task_struct *, char *);
extern int proc_tid_stat(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task);
extern int proc_tgid_stat(struct seq_file *m, struct pid_namespace *ns,
struct pid *pid, struct task_struct *task);
extern int proc_pid_status(struct task_struct *, char *);
extern int proc_pid_statm(struct task_struct *, char *);
extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
Expand Down

0 comments on commit 8a56c47

Please sign in to comment.