Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+35 -13
+1
fs/proc/Makefile
··· 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
-13
fs/proc/proc_misc.c
··· 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 { ··· 668 680 char *name; 669 681 int (*read_proc)(char*,char**,off_t,int,int*,void*); 670 682 } *p, simple_ones[] = { 671 - {"version", version_read_proc}, 672 683 #ifdef CONFIG_PROC_HARDWARE 673 684 {"hardware", hardware_read_proc}, 674 685 #endif
+34
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);