mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
compat_ioctl: move common block ioctls to compat_blkdev_ioctl
Make compat_blkdev_ioctl and blkdev_ioctl reflect the respective native versions. This is somewhat more efficient and makes it easier to keep the two in sync. Also get rid of the bogus handling for broken_blkgetsize and the duplicate entry for BLKRASET. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
d2bbf3da37
commit
f58c4c0a17
4 changed files with 126 additions and 62 deletions
|
|
@ -217,6 +217,10 @@ int blkdev_driver_ioctl(struct inode *inode, struct file *file,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(blkdev_driver_ioctl);
|
||||
|
||||
/*
|
||||
* always keep this in sync with compat_blkdev_ioctl() and
|
||||
* compat_blkdev_locked_ioctl()
|
||||
*/
|
||||
int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
|
|
@ -284,21 +288,4 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
|
|||
|
||||
return blkdev_driver_ioctl(inode, file, disk, cmd, arg);
|
||||
}
|
||||
|
||||
/* Most of the generic ioctls are handled in the normal fallback path.
|
||||
This assumes the blkdev's low level compat_ioctl always returns
|
||||
ENOIOCTLCMD for unknown ioctls. */
|
||||
long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
|
||||
{
|
||||
struct block_device *bdev = file->f_path.dentry->d_inode->i_bdev;
|
||||
struct gendisk *disk = bdev->bd_disk;
|
||||
int ret = -ENOIOCTLCMD;
|
||||
if (disk->fops->compat_ioctl) {
|
||||
lock_kernel();
|
||||
ret = disk->fops->compat_ioctl(file, cmd, arg);
|
||||
unlock_kernel();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL_GPL(blkdev_ioctl);
|
||||
|
|
|
|||
Loading…
Reference in a new issue