[PATCH] switch viocd

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index 57c2dce..1392935 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -151,25 +151,24 @@
 	.release	= single_release,
 };
 
-static int viocd_blk_open(struct inode *inode, struct file *file)
+static int viocd_blk_open(struct block_device *bdev, fmode_t mode)
 {
-	struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-	return cdrom_open(&di->viocd_info, inode->i_bdev, file->f_mode);
+	struct disk_info *di = bdev->bd_disk->private_data;
+	return cdrom_open(&di->viocd_info, bdev, mode);
 }
 
-static int viocd_blk_release(struct inode *inode, struct file *file)
+static int viocd_blk_release(struct gendisk *disk, fmode_t mode)
 {
-	struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-	cdrom_release(&di->viocd_info, file ? file->f_mode : 0);
+	struct disk_info *di = disk->private_data;
+	cdrom_release(&di->viocd_info, mode);
 	return 0;
 }
 
-static int viocd_blk_ioctl(struct inode *inode, struct file *file,
+static int viocd_blk_ioctl(struct block_device *bdev, fmode_t mode,
 		unsigned cmd, unsigned long arg)
 {
-	struct disk_info *di = inode->i_bdev->bd_disk->private_data;
-	return cdrom_ioctl(&di->viocd_info, inode->i_bdev,
-			   file ? file->f_mode : 0, cmd, arg);
+	struct disk_info *di = bdev->bd_disk->private_data;
+	return cdrom_ioctl(&di->viocd_info, bdev, mode, cmd, arg);
 }
 
 static int viocd_blk_media_changed(struct gendisk *disk)
@@ -180,9 +179,9 @@
 
 struct block_device_operations viocd_fops = {
 	.owner =		THIS_MODULE,
-	.__open =			viocd_blk_open,
-	.__release =		viocd_blk_release,
-	.__ioctl =		viocd_blk_ioctl,
+	.open =			viocd_blk_open,
+	.release =		viocd_blk_release,
+	.locked_ioctl =		viocd_blk_ioctl,
 	.media_changed =	viocd_blk_media_changed,
 };