mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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>
This commit is contained in:
parent
98f49b63e8
commit
a7cb3d2f09
5 changed files with 16 additions and 27 deletions
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
|
|
||||||
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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
#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 *);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue