summaryrefslogtreecommitdiffstats
path: root/sys/vm/swap_pager.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-02-22 09:15:35 +0000
committerdg <dg@FreeBSD.org>1995-02-22 09:15:35 +0000
commitb523cbbaad942c718c8ec6a20ce97c89ac6923ec (patch)
tree781a76b11cd93d49f66f76d32007c1f90de749e7 /sys/vm/swap_pager.c
parenta40bad2c2dece3e17c30cc2004d9caa97b8dab74 (diff)
downloadFreeBSD-src-b523cbbaad942c718c8ec6a20ce97c89ac6923ec.zip
FreeBSD-src-b523cbbaad942c718c8ec6a20ce97c89ac6923ec.tar.gz
Only do object paging_in_progress wakeups if someone is waiting on this
condition. Submitted by: John Dyson
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r--sys/vm/swap_pager.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 66cc7f9..83f159b 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.25 1995/02/02 09:08:00 davidg Exp $
+ * $Id: swap_pager.c,v 1.26 1995/02/21 01:22:44 davidg Exp $
*/
/*
@@ -1608,8 +1608,12 @@ swap_pager_finish(spc)
vm_object_t object = spc->spc_m[0]->object;
int i;
- if ((object->paging_in_progress -= spc->spc_count) == 0)
+ object->paging_in_progress -= spc->spc_count;
+ if ((object->paging_in_progress == 0) &&
+ (object->flags & OBJ_PIPWNT)) {
+ object->flags &= ~OBJ_PIPWNT;
thread_wakeup((int) object);
+ }
/*
* If no error mark as clean and inform the pmap system. If error,
OpenPOWER on IntegriCloud