[SCSI] Remove devfs support from the SCSI subsystem
As devfs has been disabled from the kernel tree for a number of months now (5 to be exact), here's a patch against 2.6.16-rc1-git1 that removes support for it from the SCSI subsystem. The patch also removes the scsi_disk devfs_name field as it's no longer needed. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
c67a848c35
commit
5e3c34c1e9
8 changed files with 5 additions and 63 deletions
|
@ -48,7 +48,6 @@ static const char * osst_version = "0.99.3";
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/devfs_fs_kernel.h>
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/dma.h>
|
#include <asm/dma.h>
|
||||||
|
@ -107,8 +106,6 @@ static struct osst_dev_parm {
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static char *osst_formats[ST_NBR_MODES] ={"", "l", "m", "a"};
|
|
||||||
|
|
||||||
/* Some default definitions have been moved to osst_options.h */
|
/* Some default definitions have been moved to osst_options.h */
|
||||||
#define OSST_BUFFER_SIZE (OSST_BUFFER_BLOCKS * ST_KILOBYTE)
|
#define OSST_BUFFER_SIZE (OSST_BUFFER_BLOCKS * ST_KILOBYTE)
|
||||||
#define OSST_WRITE_THRESHOLD (OSST_WRITE_THRESHOLD_BLOCKS * ST_KILOBYTE)
|
#define OSST_WRITE_THRESHOLD (OSST_WRITE_THRESHOLD_BLOCKS * ST_KILOBYTE)
|
||||||
|
@ -5667,7 +5664,7 @@ static int osst_probe(struct device *dev)
|
||||||
struct st_partstat * STps;
|
struct st_partstat * STps;
|
||||||
struct osst_buffer * buffer;
|
struct osst_buffer * buffer;
|
||||||
struct gendisk * drive;
|
struct gendisk * drive;
|
||||||
int i, mode, dev_num;
|
int i, dev_num;
|
||||||
|
|
||||||
if (SDp->type != TYPE_TAPE || !osst_supports(SDp))
|
if (SDp->type != TYPE_TAPE || !osst_supports(SDp))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
@ -5803,18 +5800,6 @@ static int osst_probe(struct device *dev)
|
||||||
snprintf(name, 8, "%s%s", "n", tape_name(tpnt));
|
snprintf(name, 8, "%s%s", "n", tape_name(tpnt));
|
||||||
osst_sysfs_add(MKDEV(OSST_MAJOR, dev_num + 128), dev, tpnt, name);
|
osst_sysfs_add(MKDEV(OSST_MAJOR, dev_num + 128), dev, tpnt, name);
|
||||||
}
|
}
|
||||||
for (mode = 0; mode < ST_NBR_MODES; ++mode) {
|
|
||||||
/* Rewind entry */
|
|
||||||
devfs_mk_cdev(MKDEV(OSST_MAJOR, dev_num + (mode << 5)),
|
|
||||||
S_IFCHR | S_IRUGO | S_IWUGO,
|
|
||||||
"%s/ot%s", SDp->devfs_name, osst_formats[mode]);
|
|
||||||
|
|
||||||
/* No-rewind entry */
|
|
||||||
devfs_mk_cdev(MKDEV(OSST_MAJOR, dev_num + (mode << 5) + 128),
|
|
||||||
S_IFCHR | S_IRUGO | S_IWUGO,
|
|
||||||
"%s/ot%sn", SDp->devfs_name, osst_formats[mode]);
|
|
||||||
}
|
|
||||||
drive->number = devfs_register_tape(SDp->devfs_name);
|
|
||||||
|
|
||||||
sdev_printk(KERN_INFO, SDp,
|
sdev_printk(KERN_INFO, SDp,
|
||||||
"osst :I: Attached OnStream %.5s tape as %s\n",
|
"osst :I: Attached OnStream %.5s tape as %s\n",
|
||||||
|
@ -5831,7 +5816,7 @@ static int osst_remove(struct device *dev)
|
||||||
{
|
{
|
||||||
struct scsi_device * SDp = to_scsi_device(dev);
|
struct scsi_device * SDp = to_scsi_device(dev);
|
||||||
struct osst_tape * tpnt;
|
struct osst_tape * tpnt;
|
||||||
int i, mode;
|
int i;
|
||||||
|
|
||||||
if ((SDp->type != TYPE_TAPE) || (osst_nr_dev <= 0))
|
if ((SDp->type != TYPE_TAPE) || (osst_nr_dev <= 0))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -5842,11 +5827,6 @@ static int osst_remove(struct device *dev)
|
||||||
osst_sysfs_destroy(MKDEV(OSST_MAJOR, i));
|
osst_sysfs_destroy(MKDEV(OSST_MAJOR, i));
|
||||||
osst_sysfs_destroy(MKDEV(OSST_MAJOR, i+128));
|
osst_sysfs_destroy(MKDEV(OSST_MAJOR, i+128));
|
||||||
tpnt->device = NULL;
|
tpnt->device = NULL;
|
||||||
for (mode = 0; mode < ST_NBR_MODES; ++mode) {
|
|
||||||
devfs_remove("%s/ot%s", SDp->devfs_name, osst_formats[mode]);
|
|
||||||
devfs_remove("%s/ot%sn", SDp->devfs_name, osst_formats[mode]);
|
|
||||||
}
|
|
||||||
devfs_unregister_tape(tpnt->drive->number);
|
|
||||||
put_disk(tpnt->drive);
|
put_disk(tpnt->drive);
|
||||||
os_scsi_tapes[i] = NULL;
|
os_scsi_tapes[i] = NULL;
|
||||||
osst_nr_dev--;
|
osst_nr_dev--;
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/completion.h>
|
#include <linux/completion.h>
|
||||||
#include <linux/devfs_fs_kernel.h>
|
|
||||||
#include <linux/unistd.h>
|
#include <linux/unistd.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/kmod.h>
|
#include <linux/kmod.h>
|
||||||
|
@ -1247,7 +1246,6 @@ static int __init init_scsi(void)
|
||||||
for_each_cpu(i)
|
for_each_cpu(i)
|
||||||
INIT_LIST_HEAD(&per_cpu(scsi_done_q, i));
|
INIT_LIST_HEAD(&per_cpu(scsi_done_q, i));
|
||||||
|
|
||||||
devfs_mk_dir("scsi");
|
|
||||||
printk(KERN_NOTICE "SCSI subsystem initialized\n");
|
printk(KERN_NOTICE "SCSI subsystem initialized\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1272,7 +1270,6 @@ static void __exit exit_scsi(void)
|
||||||
scsi_exit_sysctl();
|
scsi_exit_sysctl();
|
||||||
scsi_exit_hosts();
|
scsi_exit_hosts();
|
||||||
scsi_exit_devinfo();
|
scsi_exit_devinfo();
|
||||||
devfs_remove("scsi");
|
|
||||||
scsi_exit_procfs();
|
scsi_exit_procfs();
|
||||||
scsi_exit_queue();
|
scsi_exit_queue();
|
||||||
}
|
}
|
||||||
|
|
|
@ -687,12 +687,8 @@ static int scsi_add_lun(struct scsi_device *sdev, char *inq_result, int *bflags)
|
||||||
if (inq_result[7] & 0x10)
|
if (inq_result[7] & 0x10)
|
||||||
sdev->sdtr = 1;
|
sdev->sdtr = 1;
|
||||||
|
|
||||||
sprintf(sdev->devfs_name, "scsi/host%d/bus%d/target%d/lun%d",
|
|
||||||
sdev->host->host_no, sdev->channel,
|
|
||||||
sdev->id, sdev->lun);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* End driverfs/devfs code.
|
* End sysfs code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((sdev->scsi_level >= SCSI_2) && (inq_result[7] & 2) &&
|
if ((sdev->scsi_level >= SCSI_2) && (inq_result[7] & 2) &&
|
||||||
|
|
|
@ -1571,8 +1571,6 @@ static int sd_probe(struct device *dev)
|
||||||
'a' + m1, 'a' + m2, 'a' + m3);
|
'a' + m1, 'a' + m2, 'a' + m3);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(gd->devfs_name, sdp->devfs_name);
|
|
||||||
|
|
||||||
gd->private_data = &sdkp->driver;
|
gd->private_data = &sdkp->driver;
|
||||||
gd->queue = sdkp->device->request_queue;
|
gd->queue = sdkp->device->request_queue;
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ static int sg_version_num = 30533; /* 2 digits for each component */
|
||||||
#include <linux/poll.h>
|
#include <linux/poll.h>
|
||||||
#include <linux/smp_lock.h>
|
#include <linux/smp_lock.h>
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/devfs_fs_kernel.h>
|
|
||||||
#include <linux/cdev.h>
|
#include <linux/cdev.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
|
@ -1456,14 +1455,10 @@ sg_add(struct class_device *cl_dev, struct class_interface *cl_intf)
|
||||||
k = error;
|
k = error;
|
||||||
sdp = sg_dev_arr[k];
|
sdp = sg_dev_arr[k];
|
||||||
|
|
||||||
devfs_mk_cdev(MKDEV(SCSI_GENERIC_MAJOR, k),
|
|
||||||
S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP,
|
|
||||||
"%s/generic", scsidp->devfs_name);
|
|
||||||
error = cdev_add(cdev, MKDEV(SCSI_GENERIC_MAJOR, k), 1);
|
error = cdev_add(cdev, MKDEV(SCSI_GENERIC_MAJOR, k), 1);
|
||||||
if (error) {
|
if (error)
|
||||||
devfs_remove("%s/generic", scsidp->devfs_name);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
sdp->cdev = cdev;
|
sdp->cdev = cdev;
|
||||||
if (sg_sysfs_valid) {
|
if (sg_sysfs_valid) {
|
||||||
struct class_device * sg_class_member;
|
struct class_device * sg_class_member;
|
||||||
|
@ -1553,7 +1548,6 @@ sg_remove(struct class_device *cl_dev, struct class_interface *cl_intf)
|
||||||
class_device_destroy(sg_sysfs_class, MKDEV(SCSI_GENERIC_MAJOR, k));
|
class_device_destroy(sg_sysfs_class, MKDEV(SCSI_GENERIC_MAJOR, k));
|
||||||
cdev_del(sdp->cdev);
|
cdev_del(sdp->cdev);
|
||||||
sdp->cdev = NULL;
|
sdp->cdev = NULL;
|
||||||
devfs_remove("%s/generic", scsidp->devfs_name);
|
|
||||||
put_disk(sdp->disk);
|
put_disk(sdp->disk);
|
||||||
sdp->disk = NULL;
|
sdp->disk = NULL;
|
||||||
if (NULL == sdp->headfp)
|
if (NULL == sdp->headfp)
|
||||||
|
|
|
@ -573,8 +573,6 @@ static int sr_probe(struct device *dev)
|
||||||
get_capabilities(cd);
|
get_capabilities(cd);
|
||||||
sr_vendor_init(cd);
|
sr_vendor_init(cd);
|
||||||
|
|
||||||
snprintf(disk->devfs_name, sizeof(disk->devfs_name),
|
|
||||||
"%s/cd", sdev->devfs_name);
|
|
||||||
disk->driverfs_dev = &sdev->sdev_gendev;
|
disk->driverfs_dev = &sdev->sdev_gendev;
|
||||||
set_capacity(disk, cd->capacity);
|
set_capacity(disk, cd->capacity);
|
||||||
disk->private_data = &cd->driver;
|
disk->private_data = &cd->driver;
|
||||||
|
|
|
@ -35,7 +35,6 @@ static const char *verstr = "20050830";
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/devfs_fs_kernel.h>
|
|
||||||
#include <linux/cdev.h>
|
#include <linux/cdev.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
|
@ -4053,21 +4052,6 @@ static int st_probe(struct device *dev)
|
||||||
do_create_class_files(tpnt, dev_num, mode);
|
do_create_class_files(tpnt, dev_num, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (mode = 0; mode < ST_NBR_MODES; ++mode) {
|
|
||||||
/* Make sure that the minor numbers corresponding to the four
|
|
||||||
first modes always get the same names */
|
|
||||||
i = mode << (4 - ST_NBR_MODE_BITS);
|
|
||||||
/* Rewind entry */
|
|
||||||
devfs_mk_cdev(MKDEV(SCSI_TAPE_MAJOR, TAPE_MINOR(dev_num, mode, 0)),
|
|
||||||
S_IFCHR | S_IRUGO | S_IWUGO,
|
|
||||||
"%s/mt%s", SDp->devfs_name, st_formats[i]);
|
|
||||||
/* No-rewind entry */
|
|
||||||
devfs_mk_cdev(MKDEV(SCSI_TAPE_MAJOR, TAPE_MINOR(dev_num, mode, 1)),
|
|
||||||
S_IFCHR | S_IRUGO | S_IWUGO,
|
|
||||||
"%s/mt%sn", SDp->devfs_name, st_formats[i]);
|
|
||||||
}
|
|
||||||
disk->number = devfs_register_tape(SDp->devfs_name);
|
|
||||||
|
|
||||||
sdev_printk(KERN_WARNING, SDp,
|
sdev_printk(KERN_WARNING, SDp,
|
||||||
"Attached scsi tape %s", tape_name(tpnt));
|
"Attached scsi tape %s", tape_name(tpnt));
|
||||||
printk(KERN_WARNING "%s: try direct i/o: %s (alignment %d B)\n",
|
printk(KERN_WARNING "%s: try direct i/o: %s (alignment %d B)\n",
|
||||||
|
@ -4121,13 +4105,9 @@ static int st_remove(struct device *dev)
|
||||||
scsi_tapes[i] = NULL;
|
scsi_tapes[i] = NULL;
|
||||||
st_nr_dev--;
|
st_nr_dev--;
|
||||||
write_unlock(&st_dev_arr_lock);
|
write_unlock(&st_dev_arr_lock);
|
||||||
devfs_unregister_tape(tpnt->disk->number);
|
|
||||||
sysfs_remove_link(&tpnt->device->sdev_gendev.kobj,
|
sysfs_remove_link(&tpnt->device->sdev_gendev.kobj,
|
||||||
"tape");
|
"tape");
|
||||||
for (mode = 0; mode < ST_NBR_MODES; ++mode) {
|
for (mode = 0; mode < ST_NBR_MODES; ++mode) {
|
||||||
j = mode << (4 - ST_NBR_MODE_BITS);
|
|
||||||
devfs_remove("%s/mt%s", SDp->devfs_name, st_formats[j]);
|
|
||||||
devfs_remove("%s/mt%sn", SDp->devfs_name, st_formats[j]);
|
|
||||||
for (j=0; j < 2; j++) {
|
for (j=0; j < 2; j++) {
|
||||||
class_device_destroy(st_sysfs_class,
|
class_device_destroy(st_sysfs_class,
|
||||||
MKDEV(SCSI_TAPE_MAJOR,
|
MKDEV(SCSI_TAPE_MAJOR,
|
||||||
|
|
|
@ -73,7 +73,6 @@ struct scsi_device {
|
||||||
unsigned sector_size; /* size in bytes */
|
unsigned sector_size; /* size in bytes */
|
||||||
|
|
||||||
void *hostdata; /* available to low-level driver */
|
void *hostdata; /* available to low-level driver */
|
||||||
char devfs_name[256]; /* devfs junk */
|
|
||||||
char type;
|
char type;
|
||||||
char scsi_level;
|
char scsi_level;
|
||||||
char inq_periph_qual; /* PQ from INQUIRY data */
|
char inq_periph_qual; /* PQ from INQUIRY data */
|
||||||
|
|
Loading…
Reference in a new issue