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
219219 }
220220 #endif
221221
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−
239222 #ifdef CONFIG_COMPAT
240223 /*
241224 * 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
594577 }
595578
596579 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;
599582
600− return ret;
583+ if (!bdev->bd_disk->fops->ioctl)
584+ return -ENOTTY;
585+ return bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg);
601586 }
602587 EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */
603588
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
25842584 case CDROM_LAST_WRITTEN:
25852585 case CDROM_SEND_PACKET:
25862586 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);
25882591 break;
2589−
25902592 default:
25912593 pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd);
25922594 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
12301230
12311231 if (dc->io_disable)
12321232 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);
12351236 }
12361237
12371238 void 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
570570 }
571571 }
572572
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);
574577 out:
575578 dm_unprepare_ioctl(md, srcu_idx);
576579 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
18671867 #define blkdev_compat_ptr_ioctl NULL
18681868 #endif
18691869
1870−extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
1871− unsigned long);
18721870 extern int bdev_read_page(struct block_device *, sector_t, struct page *);
18731871 extern int bdev_write_page(struct block_device *, sector_t, struct page *,
18741872 struct writeback_control *);