From 7b67df9c067bb9e002e06b995312ce5ac1221797 Mon Sep 17 00:00:00 2001 From: Salvatore Benedetto Date: Mon, 23 Jun 2008 20:13:25 +0000 Subject: [PATCH] * Fix cache reference leak git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26110 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm_page.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/vm/vm_page.cpp b/src/system/kernel/vm/vm_page.cpp index 6e00966650..5e06c8fed0 100644 --- a/src/system/kernel/vm/vm_page.cpp +++ b/src/system/kernel/vm/vm_page.cpp @@ -1011,8 +1011,12 @@ page_writer(void* /*unused*/) InterruptsSpinLocker locker(sPageLock); // state might have change while we were locking the cache - if (page->state != PAGE_STATE_MODIFIED) + if (page->state != PAGE_STATE_MODIFIED) { + // release the cache reference first + if (cache->store->ops->release_ref != NULL) + cache->store->ops->release_ref(cache->store); continue; + } remove_page_from_queue(&sModifiedPageQueue, page); page->state = PAGE_STATE_BUSY;