diff options
author | Al Viro <al@aretha.pdmi.ras.ru> | 2008-09-19 03:17:36 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-10-21 07:49:14 -0400 |
commit | 56b26add02b4bdea81d5e0ebda60db1fe3311ad4 (patch) | |
tree | 3e9b5877f77ce24a6d17574ff3d32ae8351fa0ef /block | |
parent | 6af3a56e1dd4d95836a47214e5c60d5b749a5501 (diff) |
[PATCH] kill the rest of struct file propagation in block ioctls
Now we can switch blkdev_ioctl() block_device/mode
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'block')
-rw-r--r-- | block/compat_ioctl.c | 10 | ||||
-rw-r--r-- | block/ioctl.c | 9 |
2 files changed, 6 insertions, 13 deletions
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c index 5b3db0640d87..3098c92402fd 100644 --- a/block/compat_ioctl.c +++ b/block/compat_ioctl.c | |||
@@ -177,7 +177,7 @@ struct compat_blkpg_ioctl_arg { | |||
177 | compat_caddr_t data; | 177 | compat_caddr_t data; |
178 | }; | 178 | }; |
179 | 179 | ||
180 | static int compat_blkpg_ioctl(struct inode *inode, struct file *file, | 180 | static int compat_blkpg_ioctl(struct block_device *bdev, fmode_t mode, |
181 | unsigned int cmd, struct compat_blkpg_ioctl_arg __user *ua32) | 181 | unsigned int cmd, struct compat_blkpg_ioctl_arg __user *ua32) |
182 | { | 182 | { |
183 | struct blkpg_ioctl_arg __user *a = compat_alloc_user_space(sizeof(*a)); | 183 | struct blkpg_ioctl_arg __user *a = compat_alloc_user_space(sizeof(*a)); |
@@ -196,7 +196,7 @@ static int compat_blkpg_ioctl(struct inode *inode, struct file *file, | |||
196 | if (err) | 196 | if (err) |
197 | return err; | 197 | return err; |
198 | 198 | ||
199 | return blkdev_ioctl(inode, file, cmd, (unsigned long)a); | 199 | return blkdev_ioctl(bdev, mode, cmd, (unsigned long)a); |
200 | } | 200 | } |
201 | 201 | ||
202 | #define BLKBSZGET_32 _IOR(0x12, 112, int) | 202 | #define BLKBSZGET_32 _IOR(0x12, 112, int) |
@@ -715,13 +715,13 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg) | |||
715 | * but we call blkdev_ioctl, which gets the lock for us | 715 | * but we call blkdev_ioctl, which gets the lock for us |
716 | */ | 716 | */ |
717 | case BLKRRPART: | 717 | case BLKRRPART: |
718 | return blkdev_ioctl(inode, file, cmd, | 718 | return blkdev_ioctl(bdev, mode, cmd, |
719 | (unsigned long)compat_ptr(arg)); | 719 | (unsigned long)compat_ptr(arg)); |
720 | case BLKBSZSET_32: | 720 | case BLKBSZSET_32: |
721 | return blkdev_ioctl(inode, file, BLKBSZSET, | 721 | return blkdev_ioctl(bdev, mode, BLKBSZSET, |
722 | (unsigned long)compat_ptr(arg)); | 722 | (unsigned long)compat_ptr(arg)); |
723 | case BLKPG: | 723 | case BLKPG: |
724 | return compat_blkpg_ioctl(inode, file, cmd, compat_ptr(arg)); | 724 | return compat_blkpg_ioctl(bdev, mode, cmd, compat_ptr(arg)); |
725 | case BLKRAGET: | 725 | case BLKRAGET: |
726 | case BLKFRAGET: | 726 | case BLKFRAGET: |
727 | if (!arg) | 727 | if (!arg) |
diff --git a/block/ioctl.c b/block/ioctl.c index 14b7f2c10662..c832d639b6e2 100644 --- a/block/ioctl.c +++ b/block/ioctl.c | |||
@@ -230,20 +230,13 @@ EXPORT_SYMBOL_GPL(__blkdev_driver_ioctl); | |||
230 | * always keep this in sync with compat_blkdev_ioctl() and | 230 | * always keep this in sync with compat_blkdev_ioctl() and |
231 | * compat_blkdev_locked_ioctl() | 231 | * compat_blkdev_locked_ioctl() |
232 | */ | 232 | */ |
233 | int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd, | 233 | int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, |
234 | unsigned long arg) | 234 | unsigned long arg) |
235 | { | 235 | { |
236 | struct block_device *bdev = inode->i_bdev; | ||
237 | struct gendisk *disk = bdev->bd_disk; | 236 | struct gendisk *disk = bdev->bd_disk; |
238 | struct backing_dev_info *bdi; | 237 | struct backing_dev_info *bdi; |
239 | loff_t size; | 238 | loff_t size; |
240 | int ret, n; | 239 | int ret, n; |
241 | fmode_t mode = 0; | ||
242 | if (file) { | ||
243 | mode = file->f_mode; | ||
244 | if (file->f_flags & O_NDELAY) | ||
245 | mode |= FMODE_NDELAY_NOW; | ||
246 | } | ||
247 | 240 | ||
248 | switch(cmd) { | 241 | switch(cmd) { |
249 | case BLKFLSBUF: | 242 | case BLKFLSBUF: |