diff options
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r-- | drivers/scsi/ide-scsi.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index afc96e844a25..2370fd82ebfe 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -452,40 +452,34 @@ static ide_driver_t idescsi_driver = { | |||
452 | #endif | 452 | #endif |
453 | }; | 453 | }; |
454 | 454 | ||
455 | static int idescsi_ide_open(struct inode *inode, struct file *filp) | 455 | static int idescsi_ide_open(struct block_device *bdev, fmode_t mode) |
456 | { | 456 | { |
457 | struct gendisk *disk = inode->i_bdev->bd_disk; | 457 | struct ide_scsi_obj *scsi = ide_scsi_get(bdev->bd_disk); |
458 | struct ide_scsi_obj *scsi; | ||
459 | 458 | ||
460 | if (!(scsi = ide_scsi_get(disk))) | 459 | if (!scsi) |
461 | return -ENXIO; | 460 | return -ENXIO; |
462 | 461 | ||
463 | return 0; | 462 | return 0; |
464 | } | 463 | } |
465 | 464 | ||
466 | static int idescsi_ide_release(struct inode *inode, struct file *filp) | 465 | static int idescsi_ide_release(struct gendisk *disk, fmode_t mode) |
467 | { | 466 | { |
468 | struct gendisk *disk = inode->i_bdev->bd_disk; | 467 | ide_scsi_put(ide_scsi_g(disk)); |
469 | struct ide_scsi_obj *scsi = ide_scsi_g(disk); | ||
470 | |||
471 | ide_scsi_put(scsi); | ||
472 | |||
473 | return 0; | 468 | return 0; |
474 | } | 469 | } |
475 | 470 | ||
476 | static int idescsi_ide_ioctl(struct inode *inode, struct file *file, | 471 | static int idescsi_ide_ioctl(struct block_device *bdev, fmode_t mode, |
477 | unsigned int cmd, unsigned long arg) | 472 | unsigned int cmd, unsigned long arg) |
478 | { | 473 | { |
479 | struct block_device *bdev = inode->i_bdev; | ||
480 | struct ide_scsi_obj *scsi = ide_scsi_g(bdev->bd_disk); | 474 | struct ide_scsi_obj *scsi = ide_scsi_g(bdev->bd_disk); |
481 | return generic_ide_ioctl(scsi->drive, file, bdev, cmd, arg); | 475 | return generic_ide_ioctl(scsi->drive, bdev, cmd, arg); |
482 | } | 476 | } |
483 | 477 | ||
484 | static struct block_device_operations idescsi_ops = { | 478 | static struct block_device_operations idescsi_ops = { |
485 | .owner = THIS_MODULE, | 479 | .owner = THIS_MODULE, |
486 | .open = idescsi_ide_open, | 480 | .open = idescsi_ide_open, |
487 | .release = idescsi_ide_release, | 481 | .release = idescsi_ide_release, |
488 | .ioctl = idescsi_ide_ioctl, | 482 | .locked_ioctl = idescsi_ide_ioctl, |
489 | }; | 483 | }; |
490 | 484 | ||
491 | static int idescsi_slave_configure(struct scsi_device * sdp) | 485 | static int idescsi_slave_configure(struct scsi_device * sdp) |