summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2007-10-18 23:02:18 +0000
committeralc <alc@FreeBSD.org>2007-10-18 23:02:18 +0000
commit79cc4a8646e53c09d9bd3202a1c0d70758e9d377 (patch)
tree277784b8ebaaaab2495d564ab5c62382bad88b29 /sys/vm/vm_object.c
parent9b1e0dd3a8f52ed2bd2dccdb54cdd7ff37215730 (diff)
downloadFreeBSD-src-79cc4a8646e53c09d9bd3202a1c0d70758e9d377.zip
FreeBSD-src-79cc4a8646e53c09d9bd3202a1c0d70758e9d377.tar.gz
The previous revision, updating vm_object_page_remove() for the new page
cache, did not account for the case where the vm object has nothing but cached pages. Reported by: kris, tegge Reviewed by: tegge MFC after: 3 days
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index c227516..0426bb9 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1800,7 +1800,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
if (object->resident_page_count == 0)
- return;
+ goto skipmemq;
/*
* Since physically-backed objects do not use managed pages, we can't
@@ -1849,6 +1849,7 @@ again:
}
vm_page_unlock_queues();
vm_object_pip_wakeup(object);
+skipmemq:
if (__predict_false(object->cache != NULL))
vm_page_cache_free(object, start, end);
}
OpenPOWER on IntegriCloud