Commit b457d151613873ea035de0c7348abc3d4b6efd34
1 parent
e1759c215b
Exists in
master
and in
39 other branches
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
fs/proc/Makefile
fs/proc/proc_misc.c
... | ... | @@ -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 |
fs/proc/version.c
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); |