From 22e07d6617f45d21da61ec18e016fb775619a7a9 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Thu, 17 Apr 2003 19:19:55 -0700 Subject: [PATCH] [PATCH] devfs: sanitize devfs_register_tape prototype Pass in the path directly instead of getting it from a devfs_handle_t. --- drivers/ide/ide-tape.c | 2 +- drivers/scsi/osst.c | 2 +- drivers/scsi/st.c | 2 +- fs/devfs/util.c | 30 ++++++++++-------------------- include/linux/devfs_fs_kernel.h | 2 +- 5 files changed, 14 insertions(+), 24 deletions(-) diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 6c43fd2afffdc..6266a8a3cdddd 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -6318,7 +6318,7 @@ static int idetape_attach (ide_drive_t *drive) S_IFCHR | S_IRUGO | S_IWUGO, &idetape_fops, NULL); - drive->disk->number = devfs_register_tape(drive->de); + drive->disk->number = devfs_register_tape(drive->devfs_name); drive->disk->fops = &idetape_block_ops; return 0; failed: diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index 56a707368d72c..a11b5ba064fb4 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c @@ -5571,7 +5571,7 @@ static int osst_attach(Scsi_Device * SDp) S_IFCHR | S_IRUGO | S_IWUGO, &osst_fops, NULL); } - drive->number = devfs_register_tape (SDp->de); + drive->number = devfs_register_tape(SDp->devfs_name); printk(KERN_INFO "osst :I: Attached OnStream %.5s tape at scsi%d, channel %d, id %d, lun %d as %s\n", diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index e11a76efd5f17..ba81dc7f682e0 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -3909,7 +3909,7 @@ static int st_attach(Scsi_Device * SDp) S_IFCHR | S_IRUGO | S_IWUGO, &st_fops, NULL); } - disk->number = devfs_register_tape(SDp->de); + disk->number = devfs_register_tape(SDp->devfs_name); printk(KERN_WARNING "Attached scsi tape %s at scsi%d, channel %d, id %d, lun %d\n", diff --git a/fs/devfs/util.c b/fs/devfs/util.c index 19a5b8de334b2..ef896fa7fa53c 100644 --- a/fs/devfs/util.c +++ b/fs/devfs/util.c @@ -77,28 +77,18 @@ #define PRINTK(format, args...) \ {printk (KERN_ERR "%s" format, __FUNCTION__ , ## args);} +int devfs_register_tape(const char *name) +{ + char tname[32], dest[64]; + static unsigned int tape_counter; + unsigned int n = tape_counter++; -/* Private functions follow */ - -/** - * devfs_register_tape - Register a tape device in the "/dev/tapes" hierarchy. - * @de: Any tape device entry in the device directory. - */ + sprintf(dest, "../%s", name); + sprintf(tname, "tapes/tape%u", n); + devfs_mk_symlink(tname, dest); -int devfs_register_tape (devfs_handle_t de) -{ - int pos; - char name[32], dest[64]; - static unsigned int tape_counter; - int n = tape_counter++; - - pos = devfs_generate_path (de, dest + 3, sizeof dest - 3); - if (pos < 0) return -1; - strncpy (dest + pos, "../", 3); - sprintf (name, "tapes/tape%u", n); - devfs_mk_symlink (name, dest + pos); - return n; -} /* End Function devfs_register_tape */ + return n; +} EXPORT_SYMBOL(devfs_register_tape); void devfs_unregister_tape(int num) diff --git a/include/linux/devfs_fs_kernel.h b/include/linux/devfs_fs_kernel.h index e7eea3cb3b126..d926d12e532db 100644 --- a/include/linux/devfs_fs_kernel.h +++ b/include/linux/devfs_fs_kernel.h @@ -32,7 +32,7 @@ extern devfs_handle_t devfs_mk_dir(const char *fmt, ...) extern void devfs_remove(const char *fmt, ...) __attribute__((format (printf, 1, 2))); extern int devfs_generate_path (devfs_handle_t de, char *path, int buflen); -extern int devfs_register_tape (devfs_handle_t de); +extern int devfs_register_tape(const char *name); extern void devfs_unregister_tape(int num); extern void devfs_create_partitions(struct gendisk *dev); extern void devfs_create_cdrom(struct gendisk *dev); -- 2.53.0