swap_pager.c (136927) | swap_pager.c (137186) |
---|---|
1/* 2 * Copyright (c) 1998 Matthew Dillon, 3 * Copyright (c) 1994 John S. Dyson 4 * Copyright (c) 1990 University of Utah. 5 * Copyright (c) 1982, 1986, 1989, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by --- 53 unchanged lines hidden (view full) --- 62 * 63 * from: Utah $Hdr: swap_pager.c 1.4 91/04/30$ 64 * 65 * @(#)swap_pager.c 8.9 (Berkeley) 3/21/94 66 * @(#)vm_swap.c 8.5 (Berkeley) 2/17/94 67 */ 68 69#include <sys/cdefs.h> | 1/* 2 * Copyright (c) 1998 Matthew Dillon, 3 * Copyright (c) 1994 John S. Dyson 4 * Copyright (c) 1990 University of Utah. 5 * Copyright (c) 1982, 1986, 1989, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by --- 53 unchanged lines hidden (view full) --- 62 * 63 * from: Utah $Hdr: swap_pager.c 1.4 91/04/30$ 64 * 65 * @(#)swap_pager.c 8.9 (Berkeley) 3/21/94 66 * @(#)vm_swap.c 8.5 (Berkeley) 2/17/94 67 */ 68 69#include <sys/cdefs.h> |
70__FBSDID("$FreeBSD: head/sys/vm/swap_pager.c 136927 2004-10-24 20:03:41Z phk $"); | 70__FBSDID("$FreeBSD: head/sys/vm/swap_pager.c 137186 2004-11-04 07:59:57Z phk $"); |
71 72#include "opt_mac.h" 73#include "opt_swap.h" 74#include "opt_vm.h" 75 76#include <sys/param.h> 77#include <sys/systm.h> 78#include <sys/conf.h> --- 1049 unchanged lines hidden (view full) --- 1128 */ 1129 s = splvm(); 1130 vm_page_lock_queues(); 1131 while ((mreq->flags & PG_SWAPINPROG) != 0) { 1132 vm_page_flag_set(mreq, PG_WANTED | PG_REFERENCED); 1133 cnt.v_intrans++; 1134 if (msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", hz*20)) { 1135 printf( | 71 72#include "opt_mac.h" 73#include "opt_swap.h" 74#include "opt_vm.h" 75 76#include <sys/param.h> 77#include <sys/systm.h> 78#include <sys/conf.h> --- 1049 unchanged lines hidden (view full) --- 1128 */ 1129 s = splvm(); 1130 vm_page_lock_queues(); 1131 while ((mreq->flags & PG_SWAPINPROG) != 0) { 1132 vm_page_flag_set(mreq, PG_WANTED | PG_REFERENCED); 1133 cnt.v_intrans++; 1134 if (msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", hz*20)) { 1135 printf( |
1136"swap_pager: indefinite wait buffer: device: %s, blkno: %jd, size: %ld\n", 1137 bp->b_dev == NULL ? "[NULL]" : devtoname(bp->b_dev), 1138 (intmax_t)bp->b_blkno, bp->b_bcount); | 1136"swap_pager: indefinite wait buffer: bufobj: %p, blkno: %jd, size: %ld\n", 1137 bp->b_bufobj, (intmax_t)bp->b_blkno, bp->b_bcount); |
1139 } 1140 } 1141 vm_page_unlock_queues(); 1142 splx(s); 1143 1144 VM_OBJECT_LOCK(mreq->object); 1145 /* 1146 * mreq is left busied after completion, but all the other pages --- 1385 unchanged lines hidden (view full) --- 2532 */ 2533 2534static void 2535swapdev_strategy(struct buf *bp, struct swdevt *sp) 2536{ 2537 int s; 2538 struct vnode *vp2; 2539 | 1138 } 1139 } 1140 vm_page_unlock_queues(); 1141 splx(s); 1142 1143 VM_OBJECT_LOCK(mreq->object); 1144 /* 1145 * mreq is left busied after completion, but all the other pages --- 1385 unchanged lines hidden (view full) --- 2531 */ 2532 2533static void 2534swapdev_strategy(struct buf *bp, struct swdevt *sp) 2535{ 2536 int s; 2537 struct vnode *vp2; 2538 |
2540 bp->b_dev = NULL; | |
2541 bp->b_blkno = ctodb(bp->b_blkno - sp->sw_first); 2542 2543 vp2 = sp->sw_id; 2544 vhold(vp2); 2545 s = splvm(); 2546 if (bp->b_iocmd == BIO_WRITE) { 2547 if (bp->b_bufobj) /* XXX: should always be true /phk */ 2548 bufobj_wdrop(bp->b_bufobj); --- 49 unchanged lines hidden --- | 2539 bp->b_blkno = ctodb(bp->b_blkno - sp->sw_first); 2540 2541 vp2 = sp->sw_id; 2542 vhold(vp2); 2543 s = splvm(); 2544 if (bp->b_iocmd == BIO_WRITE) { 2545 if (bp->b_bufobj) /* XXX: should always be true /phk */ 2546 bufobj_wdrop(bp->b_bufobj); --- 49 unchanged lines hidden --- |