aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/proc/proc_misc.c13
-rw-r--r--include/linux/vmstat.h1
-rw-r--r--mm/vmstat.c15
3 files changed, 14 insertions, 15 deletions
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c
index e7a301d5d432..8f3a6f085c5f 100644
--- a/fs/proc/proc_misc.c
+++ b/fs/proc/proc_misc.c
@@ -57,18 +57,6 @@
57#include <asm/div64.h> 57#include <asm/div64.h>
58#include "internal.h" 58#include "internal.h"
59 59
60static int zoneinfo_open(struct inode *inode, struct file *file)
61{
62 return seq_open(file, &zoneinfo_op);
63}
64
65static const struct file_operations proc_zoneinfo_file_operations = {
66 .open = zoneinfo_open,
67 .read = seq_read,
68 .llseek = seq_lseek,
69 .release = seq_release,
70};
71
72#ifdef CONFIG_BLOCK 60#ifdef CONFIG_BLOCK
73static int diskstats_open(struct inode *inode, struct file *file) 61static int diskstats_open(struct inode *inode, struct file *file)
74{ 62{
@@ -234,7 +222,6 @@ void __init proc_misc_init(void)
234 proc_symlink("mounts", NULL, "self/mounts"); 222 proc_symlink("mounts", NULL, "self/mounts");
235 223
236 /* And now for trickier ones */ 224 /* And now for trickier ones */
237 proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
238#ifdef CONFIG_BLOCK 225#ifdef CONFIG_BLOCK
239 proc_create("diskstats", 0, NULL, &proc_diskstats_operations); 226 proc_create("diskstats", 0, NULL, &proc_diskstats_operations);
240#endif 227#endif
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index 7b68c4c1e19c..524cd1b28ecb 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -54,7 +54,6 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
54 NR_VM_EVENT_ITEMS 54 NR_VM_EVENT_ITEMS
55}; 55};
56 56
57extern const struct seq_operations zoneinfo_op;
58extern int sysctl_stat_interval; 57extern int sysctl_stat_interval;
59 58
60#ifdef CONFIG_VM_EVENT_COUNTERS 59#ifdef CONFIG_VM_EVENT_COUNTERS
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 7e1854b81868..c3ccfda23adc 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -795,7 +795,7 @@ static int zoneinfo_show(struct seq_file *m, void *arg)
795 return 0; 795 return 0;
796} 796}
797 797
798const struct seq_operations zoneinfo_op = { 798static const struct seq_operations zoneinfo_op = {
799 .start = frag_start, /* iterate over all zones. The same as in 799 .start = frag_start, /* iterate over all zones. The same as in
800 * fragmentation. */ 800 * fragmentation. */
801 .next = frag_next, 801 .next = frag_next,
@@ -803,6 +803,18 @@ const struct seq_operations zoneinfo_op = {
803 .show = zoneinfo_show, 803 .show = zoneinfo_show,
804}; 804};
805 805
806static int zoneinfo_open(struct inode *inode, struct file *file)
807{
808 return seq_open(file, &zoneinfo_op);
809}
810
811static const struct file_operations proc_zoneinfo_file_operations = {
812 .open = zoneinfo_open,
813 .read = seq_read,
814 .llseek = seq_lseek,
815 .release = seq_release,
816};
817
806static void *vmstat_start(struct seq_file *m, loff_t *pos) 818static void *vmstat_start(struct seq_file *m, loff_t *pos)
807{ 819{
808 unsigned long *v; 820 unsigned long *v;
@@ -950,6 +962,7 @@ static int __init setup_vmstat(void)
950 proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations); 962 proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
951 proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops); 963 proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
952 proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations); 964 proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
965 proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
953#endif 966#endif
954 return 0; 967 return 0;
955} 968}