summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1995-04-21 02:48:40 +0000
committerdyson <dyson@FreeBSD.org>1995-04-21 02:48:40 +0000
commit62a68b5f4e919793a339e83f6926375c7c31ba4e (patch)
tree1a0820be27ca9d9cde0085c58453af412e88ebc7 /sys/vm
parenta22e09d218639f36302f98d49dc846df60972886 (diff)
downloadFreeBSD-src-62a68b5f4e919793a339e83f6926375c7c31ba4e.zip
FreeBSD-src-62a68b5f4e919793a339e83f6926375c7c31ba4e.tar.gz
Fixed a problem in _vm_object_page_clean that could cause an
infinite loop.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index f145515..036a5ee 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_object.c,v 1.42 1995/04/16 03:11:28 davidg Exp $
+ * $Id: vm_object.c,v 1.43 1995/04/16 12:56:19 davidg Exp $
*/
/*
@@ -529,9 +529,11 @@ startover:
if ((p->valid & p->dirty) != 0) {
vm_offset_t tincr;
tincr = vm_pageout_clean(p, VM_PAGEOUT_FORCE);
- pgcount -= (tincr - 1);
- tincr *= PAGE_SIZE;
- tstart += tincr - PAGE_SIZE;
+ if( tincr) {
+ pgcount -= (tincr - 1);
+ tincr *= PAGE_SIZE;
+ tstart += tincr - PAGE_SIZE;
+ }
allclean = 0;
}
}
OpenPOWER on IntegriCloud