aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMatthew N. Dodd <mdodd@FreeBSD.org>2002-09-22 08:22:32 +0000
committerMatthew N. Dodd <mdodd@FreeBSD.org>2002-09-22 08:22:32 +0000
commit4a2eca23cad9d40a1fada75edcfa78e2cbb3c34f (patch)
tree31a63d92b0c80a622b84d31ed55878ddfd210d06 /sys
parent1302dabd28a369708901ba5eb79d0646cc544644 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_map.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
index 386acbcccb681..f28271dc29be1 100644
--- a/sys/vm/vm_map.c
+++ b/sys/vm/vm_map.c
@@ -1920,16 +1920,19 @@ vm_map_clean(
OFF_TO_IDX(offset),
OFF_TO_IDX(offset + size + PAGE_MASK),
flags);
- if (invalidate) {
- /*vm_object_pip_wait(object, "objmcl");*/
- vm_object_page_remove(object,
- OFF_TO_IDX(offset),
- OFF_TO_IDX(offset + size + PAGE_MASK),
- FALSE);
- }
VOP_UNLOCK(object->handle, 0, curthread);
vm_object_deallocate(object);
}
+ if (object && invalidate &&
+ ((object->type == OBJT_VNODE) ||
+ (object->type == OBJT_DEVICE))) {
+ vm_object_reference(object);
+ vm_object_page_remove(object,
+ OFF_TO_IDX(offset),
+ OFF_TO_IDX(offset + size + PAGE_MASK),
+ FALSE);
+ vm_object_deallocate(object);
+ }
start += size;
}