Commit b457d151613873ea035de0c7348abc3d4b6efd34

Authored by Alexey Dobriyan
1 parent e1759c215b

proc: switch /proc/version to seq_file

and move it to fs/proc/version.c while I'm at it.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>

Showing 3 changed files with 35 additions and 13 deletions Side-by-side Diff

... ... @@ -12,6 +12,7 @@
12 12 proc-y += loadavg.o
13 13 proc-y += meminfo.o
14 14 proc-y += uptime.o
  15 +proc-y += version.o
15 16 proc-$(CONFIG_PROC_SYSCTL) += proc_sysctl.o
16 17 proc-$(CONFIG_NET) += proc_net.o
17 18 proc-$(CONFIG_PROC_KCORE) += kcore.o
... ... @@ -115,18 +115,6 @@
115 115 .release = seq_release,
116 116 };
117 117  
118   -static int version_read_proc(char *page, char **start, off_t off,
119   - int count, int *eof, void *data)
120   -{
121   - int len;
122   -
123   - len = snprintf(page, PAGE_SIZE, linux_proc_banner,
124   - utsname()->sysname,
125   - utsname()->release,
126   - utsname()->version);
127   - return proc_calc_metrics(page, start, off, count, eof, len);
128   -}
129   -
130 118 extern const struct seq_operations cpuinfo_op;
131 119 static int cpuinfo_open(struct inode *inode, struct file *file)
132 120 {
... ... @@ -680,7 +668,6 @@
680 668 char *name;
681 669 int (*read_proc)(char*,char**,off_t,int,int*,void*);
682 670 } *p, simple_ones[] = {
683   - {"version", version_read_proc},
684 671 #ifdef CONFIG_PROC_HARDWARE
685 672 {"hardware", hardware_read_proc},
686 673 #endif
  1 +#include <linux/fs.h>
  2 +#include <linux/init.h>
  3 +#include <linux/kernel.h>
  4 +#include <linux/proc_fs.h>
  5 +#include <linux/seq_file.h>
  6 +#include <linux/utsname.h>
  7 +
  8 +static int version_proc_show(struct seq_file *m, void *v)
  9 +{
  10 + seq_printf(m, linux_proc_banner,
  11 + utsname()->sysname,
  12 + utsname()->release,
  13 + utsname()->version);
  14 + return 0;
  15 +}
  16 +
  17 +static int version_proc_open(struct inode *inode, struct file *file)
  18 +{
  19 + return single_open(file, version_proc_show, NULL);
  20 +}
  21 +
  22 +static const struct file_operations version_proc_fops = {
  23 + .open = version_proc_open,
  24 + .read = seq_read,
  25 + .llseek = seq_lseek,
  26 + .release = single_release,
  27 +};
  28 +
  29 +static int __init proc_version_init(void)
  30 +{
  31 + proc_create("version", 0, NULL, &version_proc_fops);
  32 + return 0;
  33 +}
  34 +module_init(proc_version_init);