|
@@ -2340,32 +2340,27 @@ static const struct file_operations idetape_fops = {
|
|
|
.release = idetape_chrdev_release,
|
|
|
};
|
|
|
|
|
|
-static int idetape_open(struct inode *inode, struct file *filp)
|
|
|
+static int idetape_open(struct block_device *bdev, fmode_t mode)
|
|
|
{
|
|
|
- struct gendisk *disk = inode->i_bdev->bd_disk;
|
|
|
- struct ide_tape_obj *tape;
|
|
|
+ struct ide_tape_obj *tape = ide_tape_get(bdev->bd_disk);
|
|
|
|
|
|
- tape = ide_tape_get(disk);
|
|
|
if (!tape)
|
|
|
return -ENXIO;
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int idetape_release(struct inode *inode, struct file *filp)
|
|
|
+static int idetape_release(struct gendisk *disk, fmode_t mode)
|
|
|
{
|
|
|
- struct gendisk *disk = inode->i_bdev->bd_disk;
|
|
|
struct ide_tape_obj *tape = ide_drv_g(disk, ide_tape_obj);
|
|
|
|
|
|
ide_tape_put(tape);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int idetape_ioctl(struct inode *inode, struct file *file,
|
|
|
+static int idetape_ioctl(struct block_device *bdev, fmode_t mode,
|
|
|
unsigned int cmd, unsigned long arg)
|
|
|
{
|
|
|
- struct block_device *bdev = inode->i_bdev;
|
|
|
struct ide_tape_obj *tape = ide_drv_g(bdev->bd_disk, ide_tape_obj);
|
|
|
ide_drive_t *drive = tape->drive;
|
|
|
int err = generic_ide_ioctl(drive, bdev, cmd, arg);
|
|
@@ -2376,9 +2371,9 @@ static int idetape_ioctl(struct inode *inode, struct file *file,
|
|
|
|
|
|
static struct block_device_operations idetape_block_ops = {
|
|
|
.owner = THIS_MODULE,
|
|
|
- .__open = idetape_open,
|
|
|
- .__release = idetape_release,
|
|
|
- .__ioctl = idetape_ioctl,
|
|
|
+ .open = idetape_open,
|
|
|
+ .release = idetape_release,
|
|
|
+ .locked_ioctl = idetape_ioctl,
|
|
|
};
|
|
|
|
|
|
static int ide_tape_probe(ide_drive_t *drive)
|