diff options
author | dg <dg@FreeBSD.org> | 1994-12-19 00:02:56 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1994-12-19 00:02:56 +0000 |
commit | 05d48b0c7e3a1b9e98cc98662ad97b6a01811ebd (patch) | |
tree | 84a986aad7ba87a6ac6e6f77021a17a2be545297 /sys/vm/vm_pager.c | |
parent | 81a63dc6d52646c455526dfdbb36b02edc05fae1 (diff) | |
download | FreeBSD-src-05d48b0c7e3a1b9e98cc98662ad97b6a01811ebd.zip FreeBSD-src-05d48b0c7e3a1b9e98cc98662ad97b6a01811ebd.tar.gz |
Don't ever clear B_BUSY on a pbuf (or any other flag for that matter).
This appears to be the cause of some buffer confusion that leads to
a panic during heavy paging.
Submitted by: John Dyson
Diffstat (limited to 'sys/vm/vm_pager.c')
-rw-r--r-- | sys/vm/vm_pager.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index caf1306..1ecb203 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_pager.c,v 1.7 1994/08/18 22:36:09 wollman Exp $ + * $Id: vm_pager.c,v 1.8 1994/10/09 01:52:16 phk Exp $ */ /* @@ -412,6 +412,9 @@ relpbuf(bp) if (bp->b_vp) brelvp(bp); + if (bp->b_flags & B_WANTED) + wakeup((caddr_t)bp); + TAILQ_INSERT_HEAD(&bswlist, bp, b_freelist); if (bswneeded) { @@ -420,5 +423,3 @@ relpbuf(bp) } splx(s); } - - |