diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2008-02-08 07:18:33 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-08 12:22:24 -0500 |
commit | df5f8314ca30d6a76735748e5ba4ca9809c0f434 (patch) | |
tree | e0a6157b1666a320e69586a81c77a3fe83b36a2a /include/linux | |
parent | a56d3fc74c0178c5f41c48315604d62cff4e746d (diff) |
proc: seqfile convert proc_pid_status to properly handle pid namespaces
Currently we possibly lookup the pid in the wrong pid namespace. So
seq_file convert proc_pid_status which ensures the proper pid namespaces is
passed in.
[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: build fix]
[akpm@linux-foundation.org: another build fix]
[akpm@linux-foundation.org: s390 build fix]
[akpm@linux-foundation.org: fix task_name() output]
[akpm@linux-foundation.org: fix nommu build]
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Andrew Morgan <morgan@kernel.org>
Cc: Serge Hallyn <serue@us.ibm.com>
Cc: Cedric Le Goater <clg@fr.ibm.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Paul Menage <menage@google.com>
Cc: Paul Jackson <pj@sgi.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/cpuset.h | 9 | ||||
-rw-r--r-- | include/linux/proc_fs.h | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index ecae585ec3da..f8c9a2752f06 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h | |||
@@ -57,7 +57,9 @@ extern int cpuset_memory_pressure_enabled; | |||
57 | extern void __cpuset_memory_pressure_bump(void); | 57 | extern void __cpuset_memory_pressure_bump(void); |
58 | 58 | ||
59 | extern const struct file_operations proc_cpuset_operations; | 59 | extern const struct file_operations proc_cpuset_operations; |
60 | extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); | 60 | struct seq_file; |
61 | extern void cpuset_task_status_allowed(struct seq_file *m, | ||
62 | struct task_struct *task); | ||
61 | 63 | ||
62 | extern void cpuset_lock(void); | 64 | extern void cpuset_lock(void); |
63 | extern void cpuset_unlock(void); | 65 | extern void cpuset_unlock(void); |
@@ -126,10 +128,9 @@ static inline int cpuset_mems_allowed_intersects(const struct task_struct *tsk1, | |||
126 | 128 | ||
127 | static inline void cpuset_memory_pressure_bump(void) {} | 129 | static inline void cpuset_memory_pressure_bump(void) {} |
128 | 130 | ||
129 | static inline char *cpuset_task_status_allowed(struct task_struct *task, | 131 | static inline void cpuset_task_status_allowed(struct seq_file *m, |
130 | char *buffer) | 132 | struct task_struct *task) |
131 | { | 133 | { |
132 | return buffer; | ||
133 | } | 134 | } |
134 | 135 | ||
135 | static inline void cpuset_lock(void) {} | 136 | static inline void cpuset_lock(void) {} |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index b04ebf09fb91..e4a8f9aef188 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -118,7 +118,8 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct | |||
118 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); | 118 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); |
119 | unsigned long task_vsize(struct mm_struct *); | 119 | unsigned long task_vsize(struct mm_struct *); |
120 | int task_statm(struct mm_struct *, int *, int *, int *, int *); | 120 | int task_statm(struct mm_struct *, int *, int *, int *, int *); |
121 | char *task_mem(struct mm_struct *, char *); | 121 | void task_mem(struct seq_file *, struct mm_struct *); |
122 | void clear_refs_smap(struct mm_struct *mm); | ||
122 | 123 | ||
123 | struct proc_dir_entry *de_get(struct proc_dir_entry *de); | 124 | struct proc_dir_entry *de_get(struct proc_dir_entry *de); |
124 | void de_put(struct proc_dir_entry *de); | 125 | void de_put(struct proc_dir_entry *de); |