diff options
-rw-r--r-- | block/genhd.c | 22 | ||||
-rw-r--r-- | fs/proc/proc_misc.c | 14 | ||||
-rw-r--r-- | include/linux/genhd.h | 1 |
3 files changed, 21 insertions, 16 deletions
diff --git a/block/genhd.c b/block/genhd.c index 646e1d2507c7..15f4d2b12c48 100644 --- a/block/genhd.c +++ b/block/genhd.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/blkdev.h> | 10 | #include <linux/blkdev.h> |
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/spinlock.h> | 12 | #include <linux/spinlock.h> |
13 | #include <linux/proc_fs.h> | ||
13 | #include <linux/seq_file.h> | 14 | #include <linux/seq_file.h> |
14 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
15 | #include <linux/kmod.h> | 16 | #include <linux/kmod.h> |
@@ -727,12 +728,24 @@ static int show_partition(struct seq_file *seqf, void *v) | |||
727 | return 0; | 728 | return 0; |
728 | } | 729 | } |
729 | 730 | ||
730 | const struct seq_operations partitions_op = { | 731 | static const struct seq_operations partitions_op = { |
731 | .start = show_partition_start, | 732 | .start = show_partition_start, |
732 | .next = disk_seqf_next, | 733 | .next = disk_seqf_next, |
733 | .stop = disk_seqf_stop, | 734 | .stop = disk_seqf_stop, |
734 | .show = show_partition | 735 | .show = show_partition |
735 | }; | 736 | }; |
737 | |||
738 | static int partitions_open(struct inode *inode, struct file *file) | ||
739 | { | ||
740 | return seq_open(file, &partitions_op); | ||
741 | } | ||
742 | |||
743 | static const struct file_operations proc_partitions_operations = { | ||
744 | .open = partitions_open, | ||
745 | .read = seq_read, | ||
746 | .llseek = seq_lseek, | ||
747 | .release = seq_release, | ||
748 | }; | ||
736 | #endif | 749 | #endif |
737 | 750 | ||
738 | 751 | ||
@@ -998,6 +1011,13 @@ const struct seq_operations diskstats_op = { | |||
998 | .stop = disk_seqf_stop, | 1011 | .stop = disk_seqf_stop, |
999 | .show = diskstats_show | 1012 | .show = diskstats_show |
1000 | }; | 1013 | }; |
1014 | |||
1015 | static int __init proc_genhd_init(void) | ||
1016 | { | ||
1017 | proc_create("partitions", 0, NULL, &proc_partitions_operations); | ||
1018 | return 0; | ||
1019 | } | ||
1020 | module_init(proc_genhd_init); | ||
1001 | #endif /* CONFIG_PROC_FS */ | 1021 | #endif /* CONFIG_PROC_FS */ |
1002 | 1022 | ||
1003 | static void media_change_notify_thread(struct work_struct *work) | 1023 | static void media_change_notify_thread(struct work_struct *work) |
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index 8974809be5f6..253ea50c4393 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
@@ -106,17 +106,6 @@ static const struct file_operations proc_vmstat_file_operations = { | |||
106 | }; | 106 | }; |
107 | 107 | ||
108 | #ifdef CONFIG_BLOCK | 108 | #ifdef CONFIG_BLOCK |
109 | static int partitions_open(struct inode *inode, struct file *file) | ||
110 | { | ||
111 | return seq_open(file, &partitions_op); | ||
112 | } | ||
113 | static const struct file_operations proc_partitions_operations = { | ||
114 | .open = partitions_open, | ||
115 | .read = seq_read, | ||
116 | .llseek = seq_lseek, | ||
117 | .release = seq_release, | ||
118 | }; | ||
119 | |||
120 | static int diskstats_open(struct inode *inode, struct file *file) | 109 | static int diskstats_open(struct inode *inode, struct file *file) |
121 | { | 110 | { |
122 | return seq_open(file, &diskstats_op); | 111 | return seq_open(file, &diskstats_op); |
@@ -519,9 +508,6 @@ void __init proc_misc_init(void) | |||
519 | proc_symlink("mounts", NULL, "self/mounts"); | 508 | proc_symlink("mounts", NULL, "self/mounts"); |
520 | 509 | ||
521 | /* And now for trickier ones */ | 510 | /* And now for trickier ones */ |
522 | #ifdef CONFIG_BLOCK | ||
523 | proc_create("partitions", 0, NULL, &proc_partitions_operations); | ||
524 | #endif | ||
525 | proc_create("stat", 0, NULL, &proc_stat_operations); | 511 | proc_create("stat", 0, NULL, &proc_stat_operations); |
526 | proc_create("interrupts", 0, NULL, &proc_interrupts_operations); | 512 | proc_create("interrupts", 0, NULL, &proc_interrupts_operations); |
527 | #ifdef CONFIG_SLABINFO | 513 | #ifdef CONFIG_SLABINFO |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 206cdf96c3a7..074a4fdf4365 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -25,7 +25,6 @@ extern struct device_type part_type; | |||
25 | extern struct kobject *block_depr; | 25 | extern struct kobject *block_depr; |
26 | extern struct class block_class; | 26 | extern struct class block_class; |
27 | 27 | ||
28 | extern const struct seq_operations partitions_op; | ||
29 | extern const struct seq_operations diskstats_op; | 28 | extern const struct seq_operations diskstats_op; |
30 | 29 | ||
31 | enum { | 30 | enum { |