summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1998-09-28 02:40:11 +0000
committerdg <dg@FreeBSD.org>1998-09-28 02:40:11 +0000
commitdc15100c5d727c8f656130f7f38e947dd68a5654 (patch)
tree34831c290f489b87acd1a717b457c5e14862285e /sys/vm
parent9543e1a5853d3093b6f06c4316400219632e7952 (diff)
downloadFreeBSD-src-dc15100c5d727c8f656130f7f38e947dd68a5654.zip
FreeBSD-src-dc15100c5d727c8f656130f7f38e947dd68a5654.tar.gz
Be more selctive about when we clear p->valid.
Submitted by: John Dyson <toor@dyson.iquest.net>
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 2f6c2c5..f419e2f 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.127 1998/08/24 08:39:37 dfr Exp $
+ * $Id: vm_object.c,v 1.128 1998/09/04 08:06:57 dfr Exp $
*/
/*
@@ -1323,7 +1323,8 @@ again:
if (all || ((start <= p->pindex) && (p->pindex < end))) {
if (p->wire_count != 0) {
vm_page_protect(p, VM_PROT_NONE);
- p->valid = 0;
+ if (!clean_only)
+ p->valid = 0;
continue;
}
@@ -1351,8 +1352,9 @@ again:
if ((p = vm_page_lookup(object, start)) != 0) {
if (p->wire_count != 0) {
- p->valid = 0;
vm_page_protect(p, VM_PROT_NONE);
+ if (!clean_only)
+ p->valid = 0;
start += 1;
size -= 1;
continue;
OpenPOWER on IntegriCloud