From: Eric W. Biederman This conversion is just for code cleanliness, uniformity, and general safety. Signed-off-by: Eric W. Biederman Cc: Oleg Nesterov Cc: Alexey Dobriyan Signed-off-by: Andrew Morton --- fs/proc/array.c | 8 +++++--- fs/proc/base.c | 4 ++-- fs/proc/internal.h | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff -puN fs/proc/array.c~proc-seqfile-convert-proc_pid_statm fs/proc/array.c --- a/fs/proc/array.c~proc-seqfile-convert-proc_pid_statm +++ a/fs/proc/array.c @@ -561,7 +561,8 @@ int proc_tgid_stat(struct seq_file *m, s return do_task_stat(m, ns, pid, task, 1); } -int proc_pid_statm(struct task_struct *task, char *buffer) +int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task) { int size = 0, resident = 0, shared = 0, text = 0, lib = 0, data = 0; struct mm_struct *mm = get_task_mm(task); @@ -570,7 +571,8 @@ int proc_pid_statm(struct task_struct *t size = task_statm(mm, &shared, &text, &data, &resident); mmput(mm); } + seq_printf(m, "%d %d %d %d %d %d %d\n", + size, resident, shared, text, lib, data, 0); - return sprintf(buffer, "%d %d %d %d %d %d %d\n", - size, resident, shared, text, lib, data, 0); + return 0; } diff -puN fs/proc/base.c~proc-seqfile-convert-proc_pid_statm fs/proc/base.c --- a/fs/proc/base.c~proc-seqfile-convert-proc_pid_statm +++ a/fs/proc/base.c @@ -2182,7 +2182,7 @@ static const struct pid_entry tgid_base_ #endif INF("cmdline", S_IRUGO, pid_cmdline), ONE("stat", S_IRUGO, tgid_stat), - INF("statm", S_IRUGO, pid_statm), + ONE("statm", S_IRUGO, pid_statm), REG("maps", S_IRUGO, maps), #ifdef CONFIG_NUMA REG("numa_maps", S_IRUGO, numa_maps), @@ -2509,7 +2509,7 @@ static const struct pid_entry tid_base_s #endif INF("cmdline", S_IRUGO, pid_cmdline), ONE("stat", S_IRUGO, tid_stat), - INF("statm", S_IRUGO, pid_statm), + ONE("statm", S_IRUGO, pid_statm), REG("maps", S_IRUGO, maps), #ifdef CONFIG_NUMA REG("numa_maps", S_IRUGO, numa_maps), diff -puN fs/proc/internal.h~proc-seqfile-convert-proc_pid_statm fs/proc/internal.h --- a/fs/proc/internal.h~proc-seqfile-convert-proc_pid_statm +++ a/fs/proc/internal.h @@ -52,7 +52,8 @@ extern int proc_tid_stat(struct seq_file 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 int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task); extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); extern const struct file_operations proc_maps_operations; _