diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-11 22:14:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-11 22:14:22 -0400 |
commit | 1ce48904285fe4b0298864f9153a8502ebeac35c (patch) | |
tree | ffe1e0c31cdea427b48ae4d4d59a96ff9d208f32 /block/ioctl.c | |
parent | 55982fd184a065b1c69279d29cbc01dbf424d2f4 (diff) | |
parent | 780513ecb80ea0934fc6833efc4f5ed9ab4ff9bb (diff) |
Merge branch 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block
* 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block: (37 commits)
[BLOCK] Fix failing compile with BLK_DEV_IO_TRACE=n
compat_ioctl: move floppy handlers to block/compat_ioctl.c
compat_ioctl: move cdrom handlers to block/compat_ioctl.c
compat_ioctl: move BLKPG handling to block/compat_ioctl.c
compat_ioctl: move hdio calls to block/compat_ioctl.c
compat_ioctl: handle blk_trace ioctls
compat_ioctl: add compat_blkdev_driver_ioctl()
compat_ioctl: move common block ioctls to compat_blkdev_ioctl
Sysace: Don't enable IRQ until after interrupt handler is registered
Sysace: sparse fixes
Sysace: Minor coding convention fixup
drivers/block/umem: use DRIVER_NAME where appropriate
drivers/block/umem: trim trailing whitespace
drivers/block/umem: minor cleanups
drivers/block/umem: use dev_printk()
drivers/block/umem: move private include away from include/linux
Sysace: Labels in C code should not be indented.
Sysace: Add of_platform_bus binding
Sysace: Move IRQ handler registration to occur after FSM is initialized
Sysace: minor rework and cleanup changes
...
Diffstat (limited to 'block/ioctl.c')
-rw-r--r-- | block/ioctl.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/block/ioctl.c b/block/ioctl.c index f7e3e8abf887..52d6385216ad 100644 --- a/block/ioctl.c +++ b/block/ioctl.c | |||
@@ -217,6 +217,10 @@ int blkdev_driver_ioctl(struct inode *inode, struct file *file, | |||
217 | } | 217 | } |
218 | EXPORT_SYMBOL_GPL(blkdev_driver_ioctl); | 218 | EXPORT_SYMBOL_GPL(blkdev_driver_ioctl); |
219 | 219 | ||
220 | /* | ||
221 | * always keep this in sync with compat_blkdev_ioctl() and | ||
222 | * compat_blkdev_locked_ioctl() | ||
223 | */ | ||
220 | int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd, | 224 | int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd, |
221 | unsigned long arg) | 225 | unsigned long arg) |
222 | { | 226 | { |
@@ -284,21 +288,4 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd, | |||
284 | 288 | ||
285 | return blkdev_driver_ioctl(inode, file, disk, cmd, arg); | 289 | return blkdev_driver_ioctl(inode, file, disk, cmd, arg); |
286 | } | 290 | } |
287 | |||
288 | /* Most of the generic ioctls are handled in the normal fallback path. | ||
289 | This assumes the blkdev's low level compat_ioctl always returns | ||
290 | ENOIOCTLCMD for unknown ioctls. */ | ||
291 | long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg) | ||
292 | { | ||
293 | struct block_device *bdev = file->f_path.dentry->d_inode->i_bdev; | ||
294 | struct gendisk *disk = bdev->bd_disk; | ||
295 | int ret = -ENOIOCTLCMD; | ||
296 | if (disk->fops->compat_ioctl) { | ||
297 | lock_kernel(); | ||
298 | ret = disk->fops->compat_ioctl(file, cmd, arg); | ||
299 | unlock_kernel(); | ||
300 | } | ||
301 | return ret; | ||
302 | } | ||
303 | |||
304 | EXPORT_SYMBOL_GPL(blkdev_ioctl); | 291 | EXPORT_SYMBOL_GPL(blkdev_ioctl); |