diff options
author | alc <alc@FreeBSD.org> | 2007-10-18 23:02:18 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2007-10-18 23:02:18 +0000 |
commit | 79cc4a8646e53c09d9bd3202a1c0d70758e9d377 (patch) | |
tree | 277784b8ebaaaab2495d564ab5c62382bad88b29 /sys/vm/vm_object.c | |
parent | 9b1e0dd3a8f52ed2bd2dccdb54cdd7ff37215730 (diff) | |
download | FreeBSD-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.c | 3 |
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); } |