[haiku-commits] r35532 - haiku/trunk/src/system/kernel/cache

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 20 Feb 2010 13:36:49 +0100 (CET)

Author: bonefish
Date: 2010-02-20 13:36:49 +0100 (Sat, 20 Feb 2010)
New Revision: 35532
Changeset: http://dev.haiku-os.org/changeset/35532/haiku

Modified:
   haiku/trunk/src/system/kernel/cache/file_cache.cpp
Log:
reserve_pages(): When cannibalizing pages from the own cache it didn't check
whether the pages where mapped. Was introduced already in r22731.


Modified: haiku/trunk/src/system/kernel/cache/file_cache.cpp
===================================================================
--- haiku/trunk/src/system/kernel/cache/file_cache.cpp  2010-02-20 12:29:42 UTC 
(rev 35531)
+++ haiku/trunk/src/system/kernel/cache/file_cache.cpp  2010-02-20 12:36:49 UTC 
(rev 35532)
@@ -309,9 +309,10 @@
                                vm_page* page;
                                for (VMCachePagesTree::Iterator it = 
cache->pages.GetIterator();
                                                (page = it.Next()) != NULL && 
left > 0;) {
-                                       if (page->state != PAGE_STATE_MODIFIED 
&& !page->modified
-                                                       && !page->busy) {
+                                       if (page->state == PAGE_STATE_CACHED && 
!page->busy) {
                                                DEBUG_PAGE_ACCESS_START(page);
+                                               ASSERT(!page->IsMapped());
+                                               ASSERT(!page->modified);
                                                cache->RemovePage(page);
                                                vm_page_set_state(page, 
PAGE_STATE_FREE);
                                                left--;


Other related posts:

  • » [haiku-commits] r35532 - haiku/trunk/src/system/kernel/cache - ingo_weinhold