diff options
author | dyson <dyson@FreeBSD.org> | 1995-04-21 02:48:40 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1995-04-21 02:48:40 +0000 |
commit | 62a68b5f4e919793a339e83f6926375c7c31ba4e (patch) | |
tree | 1a0820be27ca9d9cde0085c58453af412e88ebc7 /sys/vm | |
parent | a22e09d218639f36302f98d49dc846df60972886 (diff) | |
download | FreeBSD-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.c | 10 |
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; } } |