Commit a7cb3d2f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

block: remove __blkdev_driver_ioctl

Just open code it in the few callers.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 98f49b63
...@@ -219,23 +219,6 @@ static int compat_put_ulong(compat_ulong_t __user *argp, compat_ulong_t val) ...@@ -219,23 +219,6 @@ static int compat_put_ulong(compat_ulong_t __user *argp, compat_ulong_t val)
} }
#endif #endif
int __blkdev_driver_ioctl(struct block_device *bdev, fmode_t mode,
unsigned cmd, unsigned long arg)
{
struct gendisk *disk = bdev->bd_disk;
if (disk->fops->ioctl)
return disk->fops->ioctl(bdev, mode, cmd, arg);
return -ENOTTY;
}
/*
* For the record: _GPL here is only because somebody decided to slap it
* on the previous export. Sheer idiocy, since it wasn't copyrightable
* at all and could be open-coded without any exports by anybody who cares.
*/
EXPORT_SYMBOL_GPL(__blkdev_driver_ioctl);
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
/* /*
* This is the equivalent of compat_ptr_ioctl(), to be used by block * 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, ...@@ -594,10 +577,12 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
} }
ret = blkdev_common_ioctl(bdev, mode, cmd, arg, argp); ret = blkdev_common_ioctl(bdev, mode, cmd, arg, argp);
if (ret == -ENOIOCTLCMD) if (ret != -ENOIOCTLCMD)
return __blkdev_driver_ioctl(bdev, mode, cmd, arg); return ret;
return ret; if (!bdev->bd_disk->fops->ioctl)
return -ENOTTY;
return bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg);
} }
EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */ EXPORT_SYMBOL_GPL(blkdev_ioctl); /* for /dev/raw */
......
...@@ -2584,9 +2584,11 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, ...@@ -2584,9 +2584,11 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
case CDROM_LAST_WRITTEN: case CDROM_LAST_WRITTEN:
case CDROM_SEND_PACKET: case CDROM_SEND_PACKET:
case SCSI_IOCTL_SEND_COMMAND: case SCSI_IOCTL_SEND_COMMAND:
ret = __blkdev_driver_ioctl(pd->bdev, mode, cmd, arg); if (!bdev->bd_disk->fops->ioctl)
ret = -ENOTTY;
else
ret = bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg);
break; break;
default: default:
pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd); pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd);
ret = -ENOTTY; ret = -ENOTTY;
......
...@@ -1230,8 +1230,9 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode, ...@@ -1230,8 +1230,9 @@ static int cached_dev_ioctl(struct bcache_device *d, fmode_t mode,
if (dc->io_disable) if (dc->io_disable)
return -EIO; return -EIO;
if (!dc->bdev->bd_disk->fops->ioctl)
return __blkdev_driver_ioctl(dc->bdev, mode, cmd, arg); return -ENOTTY;
return dc->bdev->bd_disk->fops->ioctl(dc->bdev, mode, cmd, arg);
} }
void bch_cached_dev_request_init(struct cached_dev *dc) 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, ...@@ -570,7 +570,10 @@ static int dm_blk_ioctl(struct block_device *bdev, fmode_t mode,
} }
} }
r = __blkdev_driver_ioctl(bdev, mode, cmd, arg); if (!bdev->bd_disk->fops->ioctl)
r = -ENOTTY;
else
r = bdev->bd_disk->fops->ioctl(bdev, mode, cmd, arg);
out: out:
dm_unprepare_ioctl(md, srcu_idx); dm_unprepare_ioctl(md, srcu_idx);
return r; return r;
......
...@@ -1867,8 +1867,6 @@ extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t, ...@@ -1867,8 +1867,6 @@ extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t,
#define blkdev_compat_ptr_ioctl NULL #define blkdev_compat_ptr_ioctl NULL
#endif #endif
extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
unsigned long);
extern int bdev_read_page(struct block_device *, sector_t, struct page *); extern int bdev_read_page(struct block_device *, sector_t, struct page *);
extern int bdev_write_page(struct block_device *, sector_t, struct page *, extern int bdev_write_page(struct block_device *, sector_t, struct page *,
struct writeback_control *); struct writeback_control *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment