|
@@ -10,6 +10,7 @@
|
|
|
#include <linux/blkdev.h>
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/spinlock.h>
|
|
|
+#include <linux/proc_fs.h>
|
|
|
#include <linux/seq_file.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/kmod.h>
|
|
@@ -727,12 +728,24 @@ static int show_partition(struct seq_file *seqf, void *v)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-const struct seq_operations partitions_op = {
|
|
|
+static const struct seq_operations partitions_op = {
|
|
|
.start = show_partition_start,
|
|
|
.next = disk_seqf_next,
|
|
|
.stop = disk_seqf_stop,
|
|
|
.show = show_partition
|
|
|
};
|
|
|
+
|
|
|
+static int partitions_open(struct inode *inode, struct file *file)
|
|
|
+{
|
|
|
+ return seq_open(file, &partitions_op);
|
|
|
+}
|
|
|
+
|
|
|
+static const struct file_operations proc_partitions_operations = {
|
|
|
+ .open = partitions_open,
|
|
|
+ .read = seq_read,
|
|
|
+ .llseek = seq_lseek,
|
|
|
+ .release = seq_release,
|
|
|
+};
|
|
|
#endif
|
|
|
|
|
|
|
|
@@ -998,6 +1011,13 @@ const struct seq_operations diskstats_op = {
|
|
|
.stop = disk_seqf_stop,
|
|
|
.show = diskstats_show
|
|
|
};
|
|
|
+
|
|
|
+static int __init proc_genhd_init(void)
|
|
|
+{
|
|
|
+ proc_create("partitions", 0, NULL, &proc_partitions_operations);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+module_init(proc_genhd_init);
|
|
|
#endif /* CONFIG_PROC_FS */
|
|
|
|
|
|
static void media_change_notify_thread(struct work_struct *work)
|