aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2005-06-23 03:10:15 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-23 12:45:32 -0400
commitbb93e3a52f8db7210258a1a2134cced0b78a46e1 (patch)
treeb6def4c3fe5624769de64e242bb2007fffea55c8 /include/linux/fs.h
parent0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9 (diff)
[PATCH] block: add unlocked_ioctl support for block devices
This patch allows block device drivers to convert their ioctl functions to unlocked_ioctl() like character devices and other subsystems. All functions that were called with the BKL held before are still used that way, but I would not be surprised if it could be removed from the ioctl functions in drivers/block/ioctl.c themselves. As a side note, I found that compat_blkdev_ioctl() acquires the BKL as well, which looks like a bug. I have checked that every user of disk->fops->compat_ioctl() in the current git tree gets the BKL itself, so it could easily be removed from compat_blkdev_ioctl(). Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 3622e952e98c..9b1278e21279 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -884,6 +884,7 @@ struct block_device_operations {
884 int (*open) (struct inode *, struct file *); 884 int (*open) (struct inode *, struct file *);
885 int (*release) (struct inode *, struct file *); 885 int (*release) (struct inode *, struct file *);
886 int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long); 886 int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
887 long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
887 long (*compat_ioctl) (struct file *, unsigned, unsigned long); 888 long (*compat_ioctl) (struct file *, unsigned, unsigned long);
888 int (*media_changed) (struct gendisk *); 889 int (*media_changed) (struct gendisk *);
889 int (*revalidate_disk) (struct gendisk *); 890 int (*revalidate_disk) (struct gendisk *);