diff options
author | kib <kib@FreeBSD.org> | 2012-12-23 22:43:27 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-12-23 22:43:27 +0000 |
commit | c6bad3bef79216ab7313dba42827d02cecb65b47 (patch) | |
tree | 91718c036281468c475132b2be95a4490ccbd71a /sys/kern/sys_generic.c | |
parent | 59cd15065c1301153ea8bfc71730fbf51f2d7e43 (diff) | |
download | FreeBSD-src-c6bad3bef79216ab7313dba42827d02cecb65b47.zip FreeBSD-src-c6bad3bef79216ab7313dba42827d02cecb65b47.tar.gz |
Do not force a writer to the devfs file to drain the buffer writes.
Requested and tested by: Ian Lepore <freebsd@damnhippie.dyndns.org>
MFC after: 2 weeks
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r-- | sys/kern/sys_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index f47cb03..b97ff7f 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -536,7 +536,8 @@ dofilewrite(td, fd, fp, auio, offset, flags) ktruio = cloneuio(auio); #endif cnt = auio->uio_resid; - if (fp->f_type == DTYPE_VNODE) + if (fp->f_type == DTYPE_VNODE && + (fp->f_vnread_flags & FDEVFS_VNODE) == 0) bwillwrite(); if ((error = fo_write(fp, auio, td->td_ucred, flags, td))) { if (auio->uio_resid != cnt && (error == ERESTART || |