[PATCH] devfs (3/7) - cleanup devfs use in ide

From: Christoph Hellwig (hch@lst.de)
Date: Fri Apr 18 2003 - 11:12:54 EST


Store the path of it's devfs directory in ide_drive_t. Use
it in the devfs_register calls instead of the devfs_handle_t
which will go away soon.

diff -Nru a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
--- a/drivers/ide/ide-probe.c Fri Apr 18 15:57:08 2003
+++ b/drivers/ide/ide-probe.c Fri Apr 18 15:57:08 2003
@@ -1289,7 +1289,6 @@
 
         for (unit = 0; unit < MAX_DRIVES; ++unit) {
                 ide_drive_t * drive = &hwif->drives[unit];
- char name[64];
                 ide_add_generic_settings(drive);
                 snprintf(drive->gendev.bus_id,BUS_ID_SIZE,"%u.%u",
                          hwif->index,unit);
@@ -1298,13 +1297,13 @@
                 drive->gendev.parent = &hwif->gendev;
                 drive->gendev.bus = &ide_bus_type;
                 drive->gendev.driver_data = drive;
- sprintf (name, "ide/host%d/bus%d/target%d/lun%d",
- (hwif->channel && hwif->mate) ?
- hwif->mate->index : hwif->index,
- hwif->channel, unit, drive->lun);
                 if (drive->present) {
                         device_register(&drive->gendev);
- drive->de = devfs_mk_dir(name);
+ sprintf(drive->devfs_name, "ide/host%d/bus%d/target%d/lun%d",
+ (hwif->channel && hwif->mate) ?
+ hwif->mate->index : hwif->index,
+ hwif->channel, unit, drive->lun);
+ drive->de = devfs_mk_dir(drive->devfs_name);
                 }
         }
         blk_register_region(MKDEV(hwif->major, 0), MAX_DRIVES << PARTN_BITS,
diff -Nru a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
--- a/drivers/ide/ide-tape.c Fri Apr 18 15:57:08 2003
+++ b/drivers/ide/ide-tape.c Fri Apr 18 15:57:08 2003
@@ -866,8 +866,6 @@
  */
 typedef struct {
         ide_drive_t *drive;
- devfs_handle_t de_r, de_n;
-
         /*
          * Since a typical character device operation requires more
          * than one packet command, we provide here enough memory
@@ -6170,8 +6168,8 @@
         DRIVER(drive)->busy = 0;
         (void) ide_unregister_subdriver(drive);
         drive->driver_data = NULL;
- devfs_unregister(tape->de_r);
- devfs_unregister(tape->de_n);
+ devfs_remove("%s/mt");
+ devfs_remove("%s/mtn");
         devfs_unregister_tape(drive->disk->number);
         kfree (tape);
         drive->disk->fops = ide_fops;
@@ -6272,6 +6270,7 @@
 static int idetape_attach (ide_drive_t *drive)
 {
         idetape_tape_t *tape;
+ char devfs_name[64];
         int minor;
 
         if (!strstr("ide-tape", drive->driver_req))
@@ -6306,16 +6305,19 @@
                 ;
         idetape_setup(drive, tape, minor);
         idetape_chrdevs[minor].drive = drive;
- tape->de_r =
- devfs_register (drive->de, "mt", DEVFS_FL_DEFAULT,
- HWIF(drive)->major, minor,
- S_IFCHR | S_IRUGO | S_IWUGO,
- &idetape_fops, NULL);
- tape->de_n =
- devfs_register (drive->de, "mtn", DEVFS_FL_DEFAULT,
- HWIF(drive)->major, minor + 128,
- S_IFCHR | S_IRUGO | S_IWUGO,
- &idetape_fops, NULL);
+
+ sprintf(devfs_name, "%s/mt", drive->devfs_name);
+ tape->de_r = devfs_register (NULL, devfs_name, 0,
+ HWIF(drive)->major, minor,
+ S_IFCHR | S_IRUGO | S_IWUGO,
+ &idetape_fops, NULL);
+
+ sprintf(devfs_name, "%s/mtn", drive->devfs_name);
+ tape->de_n = devfs_register (NULL, devfs_name, 0,
+ HWIF(drive)->major, minor + 128,
+ S_IFCHR | S_IRUGO | S_IWUGO,
+ &idetape_fops, NULL);
+
         drive->disk->number = devfs_register_tape(drive->de);
         drive->disk->fops = &idetape_block_ops;
         return 0;
diff -Nru a/drivers/ide/ide.c b/drivers/ide/ide.c
--- a/drivers/ide/ide.c Fri Apr 18 15:57:08 2003
+++ b/drivers/ide/ide.c Fri Apr 18 15:57:08 2003
@@ -650,9 +650,9 @@
          */
         for (i = 0; i < MAX_DRIVES; ++i) {
                 drive = &hwif->drives[i];
- if (drive->de) {
- devfs_unregister(drive->de);
- drive->de = NULL;
+ if (drive->devfs_name[0] != '\0') {
+ devfs_remove(drive->devfs_name);
+ drive->devfs_name[0] = '\0';
                 }
                 if (!drive->present)
                         continue;
diff -Nru a/include/linux/ide.h b/include/linux/ide.h
--- a/include/linux/ide.h Fri Apr 18 15:57:08 2003
+++ b/include/linux/ide.h Fri Apr 18 15:57:08 2003
@@ -699,7 +699,8 @@
         struct hd_driveid *id; /* drive model identification info */
         struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
         struct ide_settings_s *settings;/* /proc/ide/ drive settings */
- devfs_handle_t de; /* directory for device */
+ char devfs_name[64]; /* devfs crap */
+ devfs_handle_t de; /* will go away soon */
 
         struct hwif_s *hwif; /* actually (ide_hwif_t *) */
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Apr 23 2003 - 22:00:24 EST