diff options
author | bde <bde@FreeBSD.org> | 1998-12-24 12:07:16 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-12-24 12:07:16 +0000 |
commit | 85c558753b403c3fd475a049769a1068c9d6ba7b (patch) | |
tree | f0343bf5dc615f9ccbea71b3e6de7e2ad60a224d | |
parent | 20e32654dd0cb3b2d071403e2e8ed5ae1478956e (diff) | |
download | FreeBSD-src-85c558753b403c3fd475a049769a1068c9d6ba7b.zip FreeBSD-src-85c558753b403c3fd475a049769a1068c9d6ba7b.tar.gz |
Restored rev.1.31 which was clobbered by rev.1.69 (the big Lite2
merge). This fixes at least hanging in revoke(2) when a somewhat
active slave pty is revoked. The hang made the window for the
null pointer bug in ufsspec_{read,write} much larger.
There are many other bugs in this area (revoke of an active fifo
at best leaks memory...).
-rw-r--r-- | sys/kern/vfs_export.c | 5 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 985b9c6..2be30f2 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.175 1998/12/21 23:38:33 eivind Exp $ + * $Id: vfs_subr.c,v 1.176 1998/12/22 00:44:11 eivind Exp $ */ /* @@ -47,6 +47,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> +#include <sys/fcntl.h> #include <sys/kernel.h> #include <sys/proc.h> #include <sys/malloc.h> @@ -1583,7 +1584,7 @@ vclean(vp, flags, p) */ if (active) { if (flags & DOCLOSE) - VOP_CLOSE(vp, IO_NDELAY, NOCRED, p); + VOP_CLOSE(vp, FNONBLOCK, NOCRED, p); VOP_INACTIVE(vp, p); } else { /* diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 985b9c6..2be30f2 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.175 1998/12/21 23:38:33 eivind Exp $ + * $Id: vfs_subr.c,v 1.176 1998/12/22 00:44:11 eivind Exp $ */ /* @@ -47,6 +47,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> +#include <sys/fcntl.h> #include <sys/kernel.h> #include <sys/proc.h> #include <sys/malloc.h> @@ -1583,7 +1584,7 @@ vclean(vp, flags, p) */ if (active) { if (flags & DOCLOSE) - VOP_CLOSE(vp, IO_NDELAY, NOCRED, p); + VOP_CLOSE(vp, FNONBLOCK, NOCRED, p); VOP_INACTIVE(vp, p); } else { /* |