diff options
-rw-r--r-- | fs/proc/Makefile | 1 | ||||
-rw-r--r-- | fs/proc/cmdline.c | 29 | ||||
-rw-r--r-- | fs/proc/proc_misc.c | 10 |
3 files changed, 30 insertions, 10 deletions
diff --git a/fs/proc/Makefile b/fs/proc/Makefile index 97985c848ac3..48f9f0f121b0 100644 --- a/fs/proc/Makefile +++ b/fs/proc/Makefile | |||
@@ -9,6 +9,7 @@ proc-$(CONFIG_MMU) := mmu.o task_mmu.o | |||
9 | 9 | ||
10 | proc-y += inode.o root.o base.o generic.o array.o \ | 10 | proc-y += inode.o root.o base.o generic.o array.o \ |
11 | proc_tty.o proc_misc.o | 11 | proc_tty.o proc_misc.o |
12 | proc-y += cmdline.o | ||
12 | proc-y += loadavg.o | 13 | proc-y += loadavg.o |
13 | proc-y += meminfo.o | 14 | proc-y += meminfo.o |
14 | proc-y += uptime.o | 15 | proc-y += uptime.o |
diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c new file mode 100644 index 000000000000..82676e3fcd1d --- /dev/null +++ b/fs/proc/cmdline.c | |||
@@ -0,0 +1,29 @@ | |||
1 | #include <linux/fs.h> | ||
2 | #include <linux/init.h> | ||
3 | #include <linux/proc_fs.h> | ||
4 | #include <linux/seq_file.h> | ||
5 | |||
6 | static int cmdline_proc_show(struct seq_file *m, void *v) | ||
7 | { | ||
8 | seq_printf(m, "%s\n", saved_command_line); | ||
9 | return 0; | ||
10 | } | ||
11 | |||
12 | static int cmdline_proc_open(struct inode *inode, struct file *file) | ||
13 | { | ||
14 | return single_open(file, cmdline_proc_show, NULL); | ||
15 | } | ||
16 | |||
17 | static const struct file_operations cmdline_proc_fops = { | ||
18 | .open = cmdline_proc_open, | ||
19 | .read = seq_read, | ||
20 | .llseek = seq_lseek, | ||
21 | .release = single_release, | ||
22 | }; | ||
23 | |||
24 | static int __init proc_cmdline_init(void) | ||
25 | { | ||
26 | proc_create("cmdline", 0, NULL, &cmdline_proc_fops); | ||
27 | return 0; | ||
28 | } | ||
29 | module_init(proc_cmdline_init); | ||
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index 9fa20f157cf3..15257d4b1b91 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
@@ -472,15 +472,6 @@ static const struct file_operations proc_interrupts_operations = { | |||
472 | .release = seq_release, | 472 | .release = seq_release, |
473 | }; | 473 | }; |
474 | 474 | ||
475 | static int cmdline_read_proc(char *page, char **start, off_t off, | ||
476 | int count, int *eof, void *data) | ||
477 | { | ||
478 | int len; | ||
479 | |||
480 | len = sprintf(page, "%s\n", saved_command_line); | ||
481 | return proc_calc_metrics(page, start, off, count, eof, len); | ||
482 | } | ||
483 | |||
484 | #ifdef CONFIG_FILE_LOCKING | 475 | #ifdef CONFIG_FILE_LOCKING |
485 | static int locks_open(struct inode *inode, struct file *filp) | 476 | static int locks_open(struct inode *inode, struct file *filp) |
486 | { | 477 | { |
@@ -641,7 +632,6 @@ void __init proc_misc_init(void) | |||
641 | char *name; | 632 | char *name; |
642 | int (*read_proc)(char*,char**,off_t,int,int*,void*); | 633 | int (*read_proc)(char*,char**,off_t,int,int*,void*); |
643 | } *p, simple_ones[] = { | 634 | } *p, simple_ones[] = { |
644 | {"cmdline", cmdline_read_proc}, | ||
645 | {"execdomains", execdomains_read_proc}, | 635 | {"execdomains", execdomains_read_proc}, |
646 | {NULL,} | 636 | {NULL,} |
647 | }; | 637 | }; |