summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2012-12-23 22:43:27 +0000
committerkib <kib@FreeBSD.org>2012-12-23 22:43:27 +0000
commitc6bad3bef79216ab7313dba42827d02cecb65b47 (patch)
tree91718c036281468c475132b2be95a4490ccbd71a /sys/kern/sys_generic.c
parent59cd15065c1301153ea8bfc71730fbf51f2d7e43 (diff)
downloadFreeBSD-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.c3
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 ||
OpenPOWER on IntegriCloud