aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmstat.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/vmstat.c')
-rw-r--r--mm/vmstat.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 7e1854b8186..c3ccfda23ad 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}