1
0
Fork 0

[PATCH] switch ide-scsi

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
wifi-calibration
Al Viro 2008-03-02 10:40:39 -05:00
parent 4e999af9b2
commit 3e3c9c6f3d
1 changed files with 9 additions and 15 deletions

View File

@ -452,40 +452,34 @@ static ide_driver_t idescsi_driver = {
#endif #endif
}; };
static int idescsi_ide_open(struct inode *inode, struct file *filp) static int idescsi_ide_open(struct block_device *bdev, fmode_t mode)
{ {
struct gendisk *disk = inode->i_bdev->bd_disk; struct ide_scsi_obj *scsi = ide_scsi_get(bdev->bd_disk);
struct ide_scsi_obj *scsi;
if (!(scsi = ide_scsi_get(disk))) if (!scsi)
return -ENXIO; return -ENXIO;
return 0; return 0;
} }
static int idescsi_ide_release(struct inode *inode, struct file *filp) static int idescsi_ide_release(struct gendisk *disk, fmode_t mode)
{ {
struct gendisk *disk = inode->i_bdev->bd_disk; ide_scsi_put(ide_scsi_g(disk));
struct ide_scsi_obj *scsi = ide_scsi_g(disk);
ide_scsi_put(scsi);
return 0; return 0;
} }
static int idescsi_ide_ioctl(struct inode *inode, struct file *file, static int idescsi_ide_ioctl(struct block_device *bdev, fmode_t mode,
unsigned int cmd, unsigned long arg) unsigned int cmd, unsigned long arg)
{ {
struct block_device *bdev = inode->i_bdev;
struct ide_scsi_obj *scsi = ide_scsi_g(bdev->bd_disk); struct ide_scsi_obj *scsi = ide_scsi_g(bdev->bd_disk);
return generic_ide_ioctl(scsi->drive, bdev, cmd, arg); return generic_ide_ioctl(scsi->drive, bdev, cmd, arg);
} }
static struct block_device_operations idescsi_ops = { static struct block_device_operations idescsi_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.__open = idescsi_ide_open, .open = idescsi_ide_open,
.__release = idescsi_ide_release, .release = idescsi_ide_release,
.__ioctl = idescsi_ide_ioctl, .locked_ioctl = idescsi_ide_ioctl,
}; };
static int idescsi_slave_configure(struct scsi_device * sdp) static int idescsi_slave_configure(struct scsi_device * sdp)