Skip to content

Commit a7cb3d2

Browse files
Christoph Hellwigaxboe
authored andcommitted
block: remove __blkdev_driver_ioctl
Just open code it in the few callers. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 98f49b6 commit a7cb3d2

File tree

5 files changed

+16
-27
lines changed

5 files changed

+16
-27
lines changed

block/ioctl.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -219,23 +219,6 @@ static int compat_put_ulong(compat_ulong_t __user *argp, compat_ulong_t val)
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,
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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2584,9 +2584,11 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,8 +1230,9 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode,
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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,10 @@ static int dm_blk_ioctl(struct block_device *bdev, fmode_t mode,
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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1867,8 +1867,6 @@ extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t,
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 *);

0 commit comments

Comments
 (0)