linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / char / ftape / zftape / zftape-init.c
index 164a1aa..821357c 100644 (file)
@@ -20,6 +20,7 @@
  *      to the ftape floppy tape driver for Linux
  */
 
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
@@ -32,6 +33,7 @@
 #endif
 #include <linux/fcntl.h>
 #include <linux/smp_lock.h>
+#include <linux/devfs_fs_kernel.h>
 
 #include <linux/zftape.h>
 #include <linux/init.h>
@@ -86,7 +88,7 @@ static ssize_t zft_read (struct file *fp, char __user *buff,
 static ssize_t zft_write(struct file *fp, const char __user *buff,
                         size_t req_len, loff_t *ppos);
 
-static const struct file_operations zft_cdev =
+static struct file_operations zft_cdev =
 {
        .owner          = THIS_MODULE,
        .read           = zft_read,
@@ -330,11 +332,29 @@ KERN_INFO
        zft_class = class_create(THIS_MODULE, "zft");
        for (i = 0; i < 4; i++) {
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i), NULL, "qft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "qft%i", i);
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 4), NULL, "nqft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 4),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "nqft%i", i);
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 16), NULL, "zqft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 16),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "zqft%i", i);
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 20), NULL, "nzqft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 20),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "nzqft%i", i);
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 32), NULL, "rawqft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 32),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "rawqft%i", i);
                class_device_create(zft_class, NULL, MKDEV(QIC117_TAPE_MAJOR, i + 36), NULL, "nrawrawqft%i", i);
+               devfs_mk_cdev(MKDEV(QIC117_TAPE_MAJOR, i + 36),
+                               S_IFCHR | S_IRUSR | S_IWUSR,
+                               "nrawqft%i", i);
        }
 
 #ifdef CONFIG_ZFT_COMPRESSOR
@@ -360,11 +380,17 @@ static void zft_exit(void)
                TRACE(ft_t_info, "successful");
        }
         for (i = 0; i < 4; i++) {
+               devfs_remove("qft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i));
+               devfs_remove("nqft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 4));
+               devfs_remove("zqft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 16));
+               devfs_remove("nzqft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 20));
+               devfs_remove("rawqft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 32));
+               devfs_remove("nrawqft%i", i);
                class_device_destroy(zft_class, MKDEV(QIC117_TAPE_MAJOR, i + 36));
        }
        class_destroy(zft_class);