Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / drivers / cdrom / sbpcd.c
index ba50e5a..05c9e86 100644 (file)
 #include <linux/kernel.h>
 #include <linux/cdrom.h>
 #include <linux/ioport.h>
+#include <linux/devfs_fs_kernel.h>
 #include <linux/major.h>
 #include <linux/string.h>
 #include <linux/vmalloc.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <stdarg.h>
+#include <linux/config.h>
 #include "sbpcd.h"
 
 #define MAJOR_NR MATSUSHITA_CDROM_MAJOR
@@ -5806,6 +5808,8 @@ int __init sbpcd_init(void)
                return -ENOMEM;
        }
 
+       devfs_mk_dir("sbp");
+
        for (j=0;j<NR_SBPCD;j++)
        {
                struct cdrom_device_info * sbpcd_infop;
@@ -5867,6 +5871,7 @@ int __init sbpcd_init(void)
                disk->fops = &sbpcd_bdops;
                strcpy(disk->disk_name, sbpcd_infop->name);
                disk->flags = GENHD_FL_CD;
+               sprintf(disk->devfs_name, "sbp/c0t%d", p->drv_id);
                p->disk = disk;
                if (register_cdrom(sbpcd_infop))
                {
@@ -5901,6 +5906,7 @@ static void sbpcd_exit(void)
                if (D_S[j].drv_id==-1) continue;
                del_gendisk(D_S[j].disk);
                put_disk(D_S[j].disk);
+               devfs_remove("sbp/c0t%d", j);
                vfree(D_S[j].sbp_buf);
                if (D_S[j].sbp_audsiz>0)
                        vfree(D_S[j].aud_buf);
@@ -5911,6 +5917,7 @@ static void sbpcd_exit(void)
                }
                vfree(D_S[j].sbpcd_infop);
        }
+       devfs_remove("sbp");
        msg(DBG_INF, "%s module released.\n", major_name);
 }