Loading drivers/block/ub.c +12 −14 Original line number Diff line number Diff line Loading @@ -1667,10 +1667,9 @@ static void ub_revalidate(struct ub_dev *sc, struct ub_lun *lun) * This is mostly needed to keep refcounting, but also to support * media checks on removable media drives. */ static int ub_bd_open(struct inode *inode, struct file *filp) static int ub_bd_open(struct block_device *bdev, fmode_t mode) { struct gendisk *disk = inode->i_bdev->bd_disk; struct ub_lun *lun = disk->private_data; struct ub_lun *lun = bdev->bd_disk->private_data; struct ub_dev *sc = lun->udev; unsigned long flags; int rc; Loading @@ -1684,19 +1683,19 @@ static int ub_bd_open(struct inode *inode, struct file *filp) spin_unlock_irqrestore(&ub_lock, flags); if (lun->removable || lun->readonly) check_disk_change(inode->i_bdev); check_disk_change(bdev); /* * The sd.c considers ->media_present and ->changed not equivalent, * under some pretty murky conditions (a failure of READ CAPACITY). * We may need it one day. */ if (lun->removable && lun->changed && !(filp->f_mode & FMODE_NDELAY)) { if (lun->removable && lun->changed && !(mode & FMODE_NDELAY)) { rc = -ENOMEDIUM; goto err_open; } if (lun->readonly && (filp->f_mode & FMODE_WRITE)) { if (lun->readonly && (mode & FMODE_WRITE)) { rc = -EROFS; goto err_open; } Loading @@ -1710,9 +1709,8 @@ static int ub_bd_open(struct inode *inode, struct file *filp) /* */ static int ub_bd_release(struct inode *inode, struct file *filp) static int ub_bd_release(struct gendisk *disk, fmode_t mode) { struct gendisk *disk = inode->i_bdev->bd_disk; struct ub_lun *lun = disk->private_data; struct ub_dev *sc = lun->udev; Loading @@ -1723,13 +1721,13 @@ static int ub_bd_release(struct inode *inode, struct file *filp) /* * The ioctl interface. */ static int ub_bd_ioctl(struct inode *inode, struct file *filp, static int ub_bd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct gendisk *disk = inode->i_bdev->bd_disk; struct gendisk *disk = bdev->bd_disk; void __user *usermem = (void __user *) arg; return scsi_cmd_ioctl(disk->queue, disk, filp ? filp->f_mode : 0, cmd, usermem); return scsi_cmd_ioctl(disk->queue, disk, mode, cmd, usermem); } /* Loading Loading @@ -1791,9 +1789,9 @@ static int ub_bd_media_changed(struct gendisk *disk) static struct block_device_operations ub_bd_fops = { .owner = THIS_MODULE, .__open = ub_bd_open, .__release = ub_bd_release, .__ioctl = ub_bd_ioctl, .open = ub_bd_open, .release = ub_bd_release, .locked_ioctl = ub_bd_ioctl, .media_changed = ub_bd_media_changed, .revalidate_disk = ub_bd_revalidate, }; Loading Loading
drivers/block/ub.c +12 −14 Original line number Diff line number Diff line Loading @@ -1667,10 +1667,9 @@ static void ub_revalidate(struct ub_dev *sc, struct ub_lun *lun) * This is mostly needed to keep refcounting, but also to support * media checks on removable media drives. */ static int ub_bd_open(struct inode *inode, struct file *filp) static int ub_bd_open(struct block_device *bdev, fmode_t mode) { struct gendisk *disk = inode->i_bdev->bd_disk; struct ub_lun *lun = disk->private_data; struct ub_lun *lun = bdev->bd_disk->private_data; struct ub_dev *sc = lun->udev; unsigned long flags; int rc; Loading @@ -1684,19 +1683,19 @@ static int ub_bd_open(struct inode *inode, struct file *filp) spin_unlock_irqrestore(&ub_lock, flags); if (lun->removable || lun->readonly) check_disk_change(inode->i_bdev); check_disk_change(bdev); /* * The sd.c considers ->media_present and ->changed not equivalent, * under some pretty murky conditions (a failure of READ CAPACITY). * We may need it one day. */ if (lun->removable && lun->changed && !(filp->f_mode & FMODE_NDELAY)) { if (lun->removable && lun->changed && !(mode & FMODE_NDELAY)) { rc = -ENOMEDIUM; goto err_open; } if (lun->readonly && (filp->f_mode & FMODE_WRITE)) { if (lun->readonly && (mode & FMODE_WRITE)) { rc = -EROFS; goto err_open; } Loading @@ -1710,9 +1709,8 @@ static int ub_bd_open(struct inode *inode, struct file *filp) /* */ static int ub_bd_release(struct inode *inode, struct file *filp) static int ub_bd_release(struct gendisk *disk, fmode_t mode) { struct gendisk *disk = inode->i_bdev->bd_disk; struct ub_lun *lun = disk->private_data; struct ub_dev *sc = lun->udev; Loading @@ -1723,13 +1721,13 @@ static int ub_bd_release(struct inode *inode, struct file *filp) /* * The ioctl interface. */ static int ub_bd_ioctl(struct inode *inode, struct file *filp, static int ub_bd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { struct gendisk *disk = inode->i_bdev->bd_disk; struct gendisk *disk = bdev->bd_disk; void __user *usermem = (void __user *) arg; return scsi_cmd_ioctl(disk->queue, disk, filp ? filp->f_mode : 0, cmd, usermem); return scsi_cmd_ioctl(disk->queue, disk, mode, cmd, usermem); } /* Loading Loading @@ -1791,9 +1789,9 @@ static int ub_bd_media_changed(struct gendisk *disk) static struct block_device_operations ub_bd_fops = { .owner = THIS_MODULE, .__open = ub_bd_open, .__release = ub_bd_release, .__ioctl = ub_bd_ioctl, .open = ub_bd_open, .release = ub_bd_release, .locked_ioctl = ub_bd_ioctl, .media_changed = ub_bd_media_changed, .revalidate_disk = ub_bd_revalidate, }; Loading