aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2008-11-05 08:58:42 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2008-12-04 04:22:57 -0500
commitfd4ce1acd0f8558033b1a6968001552bd7671e6d (patch)
tree7ce54f2b2c967fe2315917ffa2eb8eb7d47e7a2b /block
parentebbefc011e56bd85b4745d01e5b8d7d05d95ed5d (diff)
[PATCH 1/2] kill FMODE_NDELAY_NOW
Update FMODE_NDELAY before each ioctl call so that we can kill the magic FMODE_NDELAY_NOW. It would be even better to do this directly in setfl(), but for that we'd need to have FMODE_NDELAY for all files, not just block special files. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'block')
-rw-r--r--block/compat_ioctl.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
index d43e6087badc..67eb93cff699 100644
--- a/block/compat_ioctl.c
+++ b/block/compat_ioctl.c
@@ -722,8 +722,14 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
722 struct backing_dev_info *bdi; 722 struct backing_dev_info *bdi;
723 loff_t size; 723 loff_t size;
724 724
725 /*
726 * O_NDELAY can be altered using fcntl(.., F_SETFL, ..), so we have
727 * to updated it before every ioctl.
728 */
725 if (file->f_flags & O_NDELAY) 729 if (file->f_flags & O_NDELAY)
726 mode |= FMODE_NDELAY_NOW; 730 mode |= FMODE_NDELAY;
731 else
732 mode &= ~FMODE_NDELAY;
727 733
728 switch (cmd) { 734 switch (cmd) {
729 case HDIO_GETGEO: 735 case HDIO_GETGEO: