diff options
author | dg <dg@FreeBSD.org> | 1998-09-28 02:40:11 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1998-09-28 02:40:11 +0000 |
commit | dc15100c5d727c8f656130f7f38e947dd68a5654 (patch) | |
tree | 34831c290f489b87acd1a717b457c5e14862285e /sys/vm | |
parent | 9543e1a5853d3093b6f06c4316400219632e7952 (diff) | |
download | FreeBSD-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.c | 8 |
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; |