diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-12-22 17:05:44 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-12-22 17:05:44 +0000 |
| commit | 50a36c111f23e57ce5a27c73759ca51e693c9017 (patch) | |
| tree | 17dbf44eddfe14fb16682afc4c49bf957dd943c5 /sys/fs/devfs | |
| parent | 10eee285f7682f9330e17198c966a66665e119d6 (diff) | |
Notes
Diffstat (limited to 'sys/fs/devfs')
| -rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index b75caa6af0a79..0ec0ce179024f 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -919,10 +919,8 @@ devfs_read_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, st if (error) return (error); resid = uio->uio_resid; - ioflag = 0; - if (fp->f_flag & O_NONBLOCK) - ioflag |= IO_NDELAY; - if (fp->f_flag & O_DIRECT) + ioflag = fp->f_flag & (O_NONBLOCK | O_DIRECT); + if (ioflag & O_DIRECT) ioflag |= IO_DIRECT; if ((flags & FOF_OFFSET) == 0) @@ -1351,14 +1349,9 @@ devfs_write_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, s return (error); KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); vp = fp->f_vnode; - ioflag = 0; - if (fp->f_flag & O_NONBLOCK) - ioflag |= IO_NDELAY; - if (fp->f_flag & O_DIRECT) + ioflag = fp->f_flag & (O_NONBLOCK | O_DIRECT | O_FSYNC); + if (ioflag & O_DIRECT) ioflag |= IO_DIRECT; - if ((fp->f_flag & O_FSYNC) || - (vp->v_mount && (vp->v_mount->mnt_flag & MNT_SYNCHRONOUS))) - ioflag |= IO_SYNC; if ((flags & FOF_OFFSET) == 0) uio->uio_offset = fp->f_offset; |
