#define ATAPI_READ_10          0x28
 #define ATAPI_WRITE_10         0x2a
 
-static int pf_open(struct inode *inode, struct file *file);
+static int pf_open(struct block_device *bdev, fmode_t mode);
 static void do_pf_request(struct request_queue * q);
-static int pf_ioctl(struct inode *inode, struct file *file,
+static int pf_ioctl(struct block_device *bdev, fmode_t mode,
                    unsigned int cmd, unsigned long arg);
 static int pf_getgeo(struct block_device *bdev, struct hd_geometry *geo);
 
-static int pf_release(struct inode *inode, struct file *file);
+static int pf_release(struct gendisk *disk, fmode_t mode);
 
 static int pf_detect(void);
 static void do_pf_read(void);
 
 static struct block_device_operations pf_fops = {
        .owner          = THIS_MODULE,
-       .__open         = pf_open,
-       .__release      = pf_release,
-       .__ioctl                = pf_ioctl,
+       .open           = pf_open,
+       .release        = pf_release,
+       .locked_ioctl   = pf_ioctl,
        .getgeo         = pf_getgeo,
        .media_changed  = pf_check_media,
 };
        }
 }
 
-static int pf_open(struct inode *inode, struct file *file)
+static int pf_open(struct block_device *bdev, fmode_t mode)
 {
-       struct pf_unit *pf = inode->i_bdev->bd_disk->private_data;
+       struct pf_unit *pf = bdev->bd_disk->private_data;
 
        pf_identify(pf);
 
        if (pf->media_status == PF_NM)
                return -ENODEV;
 
-       if ((pf->media_status == PF_RO) && (file->f_mode & FMODE_WRITE))
+       if ((pf->media_status == PF_RO) && (mode & FMODE_WRITE))
                return -EROFS;
 
        pf->access++;
        return 0;
 }
 
-static int pf_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
+static int pf_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg)
 {
-       struct pf_unit *pf = inode->i_bdev->bd_disk->private_data;
+       struct pf_unit *pf = bdev->bd_disk->private_data;
 
        if (cmd != CDROMEJECT)
                return -EINVAL;
        return 0;
 }
 
-static int pf_release(struct inode *inode, struct file *file)
+static int pf_release(struct gendisk *disk, fmode_t mode)
 {
-       struct pf_unit *pf = inode->i_bdev->bd_disk->private_data;
+       struct pf_unit *pf = disk->private_data;
 
        if (pf->access <= 0)
                return -EINVAL;