diff options
author | dg <dg@FreeBSD.org> | 1995-02-22 09:15:35 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-02-22 09:15:35 +0000 |
commit | b523cbbaad942c718c8ec6a20ce97c89ac6923ec (patch) | |
tree | 781a76b11cd93d49f66f76d32007c1f90de749e7 /sys/vm/swap_pager.c | |
parent | a40bad2c2dece3e17c30cc2004d9caa97b8dab74 (diff) | |
download | FreeBSD-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.c | 8 |
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, |