Just open code it in the few callers.
Unified · Split
| @@ -219,23 +219,6 @@ static int compat_put_ulong(compat_ulong_t __user *argp, compat_ulong_t val) · 218 unmodified lines | ||
| 219 | 219 | } |
| 220 | 220 | #endif |
| 221 | 221 | |
| 222 | −int __blkdev_driver_ioctl(struct block_device *bdev, fmode_t mode, | |
| 223 | − unsigned cmd, unsigned long arg) | |
| 224 | −{ | |
| 225 | − struct gendisk *disk = bdev->bd_disk; | |
| 226 | − | |
| 227 | − if (disk->fops->ioctl) | |
| 228 | − return disk->fops->ioctl(bdev, mode, cmd, arg); | |
| 229 | − | |
| 230 | − return -ENOTTY; | |
| 231 | −} | |
| 232 | −/* | |
| 233 | − * For the record: _GPL here is only because somebody decided to slap it | |
| 234 | − * on the previous export. Sheer idiocy, since it wasn't copyrightable | |
| 235 | − * at all and could be open-coded without any exports by anybody who cares. | |
| 236 | − */ | |
| 237 | −EXPORT_SYMBOL_GPL(__blkdev_driver_ioctl); | |
| 238 | − | |
| 239 | 222 | #ifdef CONFIG_COMPAT |
| 240 | 223 | /* |
| 241 | 224 | * This is the equivalent of compat_ptr_ioctl(), to be used by block |
| @@ -594,10 +577,12 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, · 352 unmodified lines | ||
| 594 | 577 | } |
| 595 | 578 | |
| 596 | 579 | ret = blkdev_common_ioctl(bdev, mode, cmd, arg, argp); |
| 597 | − if (ret == -ENOIOCTLCMD) | |
| 598 | − return __blkdev_driver_ioctl(bdev, mode, cmd, arg); | |
| 580 | + if (ret != -ENOIOCTLCMD) | |
| 581 | + return ret; | |
| 599 | 582 | |
| 600 | − return ret; | |
| 583 | + if (!bdev->bd_disk->fops->ioctl) | |
| 584 | + return -ENOTTY; | |
| 585 | + return bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg); | |
| 601 | 586 | } |
| 602 | 587 | EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */ |
| 603 | 588 | |
| @@ -2584,9 +2584,11 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, · 2583 unmodified lines | ||
| 2584 | 2584 | case CDROM_LAST_WRITTEN: |
| 2585 | 2585 | case CDROM_SEND_PACKET: |
| 2586 | 2586 | case SCSI_IOCTL_SEND_COMMAND: |
| 2587 | − ret = __blkdev_driver_ioctl(pd->bdev, mode, cmd, arg); | |
| 2587 | + if (!bdev->bd_disk->fops->ioctl) | |
| 2588 | + ret = -ENOTTY; | |
| 2589 | + else | |
| 2590 | + ret = bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg); | |
| 2588 | 2591 | break; |
| 2589 | − | |
| 2590 | 2592 | default: |
| 2591 | 2593 | pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd); |
| 2592 | 2594 | ret = -ENOTTY; |
| @@ -1230,8 +1230,9 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode, · 1229 unmodified lines | ||
| 1230 | 1230 | |
| 1231 | 1231 | if (dc->io_disable) |
| 1232 | 1232 | return -EIO; |
| 1233 | − | |
| 1234 | − return __blkdev_driver_ioctl(dc->bdev, mode, cmd, arg); | |
| 1233 | + if (!dc->bdev->bd_disk->fops->ioctl) | |
| 1234 | + return -ENOTTY; | |
| 1235 | + return dc->bdev->bd_disk->fops->ioctl(dc->bdev, mode, cmd, arg); | |
| 1235 | 1236 | } |
| 1236 | 1237 | |
| 1237 | 1238 | void bch_cached_dev_request_init(struct cached_dev *dc) |
| @@ -570,7 +570,10 @@ static int dm_blk_ioctl(struct block_device *bdev, fmode_t mode, · 569 unmodified lines | ||
| 570 | 570 | } |
| 571 | 571 | } |
| 572 | 572 | |
| 573 | − r = __blkdev_driver_ioctl(bdev, mode, cmd, arg); | |
| 573 | + if (!bdev->bd_disk->fops->ioctl) | |
| 574 | + r = -ENOTTY; | |
| 575 | + else | |
| 576 | + r = bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg); | |
| 574 | 577 | out: |
| 575 | 578 | dm_unprepare_ioctl(md, srcu_idx); |
| 576 | 579 | return r; |
| @@ -1867,8 +1867,6 @@ extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t, · 1866 unmodified lines | ||
| 1867 | 1867 | #define blkdev_compat_ptr_ioctl NULL |
| 1868 | 1868 | #endif |
| 1869 | 1869 | |
| 1870 | −extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, | |
| 1871 | − unsigned long); | |
| 1872 | 1870 | extern int bdev_read_page(struct block_device *, sector_t, struct page *); |
| 1873 | 1871 | extern int bdev_write_page(struct block_device *, sector_t, struct page *, |
| 1874 | 1872 | struct writeback_control *); |