History

block: remove __blkdev_driver_ioctl

Just open code it in the few callers.

Christoph Hellwig committed 6 years ago

Commit a7cb3d21 parent 98f49b65 files · +16 −27Browse files

Unified · Split

5 files
  1. block/ioctl.c +5 −20
  2. drivers/block/pktcdvd.c +4 −2
  3. drivers/md/bcache/request.c +3 −2
  4. drivers/md/dm.c +4 −1
  5. include/linux/blkdev.h +0 −2
block/ioctl.c+5−20
@@ -219,23 +219,6 @@ static int compat_put_ulong(compat_ulong_t __user *argp, compat_ulong_t val) · 218 unmodified lines
219}219}
220#endif220#endif
221 221
222int __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 */
237EXPORT_SYMBOL_GPL(__blkdev_driver_ioctl);
238
239#ifdef CONFIG_COMPAT222#ifdef CONFIG_COMPAT
240/*223/*
241 * This is the equivalent of compat_ptr_ioctl(), to be used by block224 * 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 ret = blkdev_common_ioctl(bdev, mode, cmd, arg, argp);579 ret = blkdev_common_ioctl(bdev, mode, cmd, arg, argp);
597 if (ret == -ENOIOCTLCMD)580 if (ret != -ENOIOCTLCMD)
598 return __blkdev_driver_ioctl(bdev, mode, cmd, arg);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}
602EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */587EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */
603 588
drivers/block/pktcdvd.c+4−2
@@ -2584,9 +2584,11 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, · 2583 unmodified lines
2584 case CDROM_LAST_WRITTEN:2584 case CDROM_LAST_WRITTEN:
2585 case CDROM_SEND_PACKET:2585 case CDROM_SEND_PACKET:
2586 case SCSI_IOCTL_SEND_COMMAND: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 break;2591 break;
2589
2590 default:2592 default:
2591 pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd);2593 pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd);
2592 ret = -ENOTTY;2594 ret = -ENOTTY;
drivers/md/bcache/request.c+3−2
@@ -1230,8 +1230,9 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode, · 1229 unmodified lines
1230 1230
1231 if (dc->io_disable)1231 if (dc->io_disable)
1232 return -EIO;1232 return -EIO;
1233 1233 if (!dc->bdev->bd_disk->fops->ioctl)
1234 return __blkdev_driver_ioctl(dc->bdev, mode, cmd, arg);1234 return -ENOTTY;
1235 return dc->bdev->bd_disk->fops->ioctl(dc->bdev, mode, cmd, arg);
1235}1236}
1236 1237
1237void bch_cached_dev_request_init(struct cached_dev *dc)1238void bch_cached_dev_request_init(struct cached_dev *dc)
drivers/md/dm.c+4−1
@@ -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);
574out:577out:
575 dm_unprepare_ioctl(md, srcu_idx);578 dm_unprepare_ioctl(md, srcu_idx);
576 return r;579 return r;
include/linux/blkdev.h+0−2
@@ -1867,8 +1867,6 @@ extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t, · 1866 unmodified lines
1867#define blkdev_compat_ptr_ioctl NULL1867#define blkdev_compat_ptr_ioctl NULL
1868#endif1868#endif
1869 1869
1870extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
1871 unsigned long);
1872extern int bdev_read_page(struct block_device *, sector_t, struct page *);1870extern int bdev_read_page(struct block_device *, sector_t, struct page *);
1873extern int bdev_write_page(struct block_device *, sector_t, struct page *,1871extern int bdev_write_page(struct block_device *, sector_t, struct page *,
1874 struct writeback_control *);1872 struct writeback_control *);