vblk->vq->vq_ops->kick(vblk->vq);
 }
 
-static int virtblk_ioctl(struct inode *inode, struct file *filp,
+static int virtblk_ioctl(struct block_device *bdev, fmode_t mode,
                         unsigned cmd, unsigned long data)
 {
-       return scsi_cmd_ioctl(inode->i_bdev->bd_disk->queue,
-                             inode->i_bdev->bd_disk, filp->f_mode, cmd,
+       return scsi_cmd_ioctl(bdev->bd_disk->queue,
+                             bdev->bd_disk, mode, cmd,
                              (void __user *)data);
 }
 
 }
 
 static struct block_device_operations virtblk_fops = {
-       .__ioctl  = virtblk_ioctl,
+       .locked_ioctl = virtblk_ioctl,
        .owner  = THIS_MODULE,
        .getgeo = virtblk_getgeo,
 };