summaryrefslogtreecommitdiffstats
path: root/sys/vm/swap_pager.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1994-08-07 13:10:43 +0000
committerdg <dg@FreeBSD.org>1994-08-07 13:10:43 +0000
commit81dc370a9d5a2ec97a413123079d94be91110fbe (patch)
treec701e7ef61340402192c9838085c1028a0a3b07c /sys/vm/swap_pager.c
parent024b33e58ce38e9533965d82b09863cc5f9aefd7 (diff)
downloadFreeBSD-src-81dc370a9d5a2ec97a413123079d94be91110fbe.zip
FreeBSD-src-81dc370a9d5a2ec97a413123079d94be91110fbe.tar.gz
Provide support for upcoming merged VM/buffer cache, and fixed a few bugs
that haven't appeared to manifest themselves (yet). Submitted by: John Dyson
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r--sys/vm/swap_pager.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 189929c..ad3d3db 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.4 1994/08/02 07:55:13 davidg Exp $
+ * $Id: swap_pager.c,v 1.5 1994/08/06 09:15:36 davidg Exp $
*/
/*
@@ -1366,17 +1366,6 @@ retrygetspace:
* get a swap pager clean data structure, block until we get it
*/
if (swap_pager_free.tqh_first == NULL) {
-/*
- if (flags & B_ASYNC) {
- for(i=0;i<count;i++) {
- rtvals[i] = VM_PAGER_AGAIN;
- if( swb[i])
- --swb[i]->swb_locked;
- }
- return VM_PAGER_AGAIN;
- }
-*/
-
s = splbio();
if( curproc == pageproc)
(void) swap_pager_clean();
@@ -1442,9 +1431,11 @@ retrygetspace:
bp->b_flags = B_BUSY;
bp->b_proc = &proc0; /* XXX (but without B_PHYS set this is ok) */
bp->b_rcred = bp->b_wcred = bp->b_proc->p_ucred;
- crhold(bp->b_rcred);
- crhold(bp->b_wcred);
- bp->b_un.b_addr = (caddr_t) kva;
+ if( bp->b_rcred != NOCRED)
+ crhold(bp->b_rcred);
+ if( bp->b_wcred != NOCRED)
+ crhold(bp->b_wcred);
+ bp->b_data = (caddr_t) kva;
bp->b_blkno = reqaddr[0];
bgetvp( swapdev_vp, bp);
OpenPOWER on IntegriCloud