aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1994-12-19 00:02:56 +0000
committerDavid Greenman <dg@FreeBSD.org>1994-12-19 00:02:56 +0000
commit618540833659ea9819b7e2260a9b3707f0aa6a20 (patch)
tree84a986aad7ba87a6ac6e6f77021a17a2be545297 /sys/vm
parent7c5eeb390e76dea3ba24be99ceef17e1137e251c (diff)
downloadsrc-618540833659ea9819b7e2260a9b3707f0aa6a20.tar.gz
src-618540833659ea9819b7e2260a9b3707f0aa6a20.zip
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
Notes
Notes: svn path=/head/; revision=5166
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/swap_pager.c5
-rw-r--r--sys/vm/vm_pager.c7
2 files changed, 5 insertions, 7 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 9819f7e4685b..fa10553503d0 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -39,7 +39,7 @@
* from: Utah $Hdr: swap_pager.c 1.4 91/04/30$
*
* @(#)swap_pager.c 8.9 (Berkeley) 3/21/94
- * $Id: swap_pager.c,v 1.17 1994/11/06 09:55:28 davidg Exp $
+ * $Id: swap_pager.c,v 1.18 1994/11/13 15:36:48 davidg Exp $
*/
/*
@@ -1070,7 +1070,6 @@ swap_pager_input(swp, m, count, reqpage)
} else {
rv = VM_PAGER_OK;
}
- bp->b_flags &= ~(B_BUSY|B_WANTED|B_PHYS|B_DIRTY|B_CALL|B_DONE);
--swp->sw_piip;
if (swp->sw_piip == 0)
@@ -1467,7 +1466,6 @@ retrygetspace:
} else {
rv = VM_PAGER_OK;
}
- bp->b_flags &= ~(B_BUSY|B_WANTED|B_PHYS|B_DIRTY|B_CALL|B_DONE);
--swp->sw_poip;
if (swp->sw_poip == 0)
@@ -1639,7 +1637,6 @@ swap_pager_iodone(bp)
vwakeup(bp);
*/
- bp->b_flags &= ~(B_BUSY|B_WANTED|B_PHYS|B_DIRTY|B_ASYNC);
if (bp->b_vp) {
brelvp(bp);
}
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c
index caf1306b108c..1ecb203aacd4 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);
}
-
-