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

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 20 Feb 2010 11:51:53 +0100 (CET)

Author: bonefish
Date: 2010-02-20 11:51:53 +0100 (Sat, 20 Feb 2010)
New Revision: 35530
Changeset: http://dev.haiku-os.org/changeset/35530/haiku

Modified:
   haiku/trunk/src/system/kernel/cache/file_cache.cpp
Log:
cache_io(): Also requeue the last touched page to keep things roughly LRU
sorted.


Modified: haiku/trunk/src/system/kernel/cache/file_cache.cpp
===================================================================
--- haiku/trunk/src/system/kernel/cache/file_cache.cpp  2010-02-20 10:46:50 UTC 
(rev 35529)
+++ haiku/trunk/src/system/kernel/cache/file_cache.cpp  2010-02-20 10:51:53 UTC 
(rev 35530)
@@ -824,13 +824,6 @@
                                cache->MarkPageUnbusy(page);
                        }
 
-                       if (bytesLeft <= bytesInPage) {
-                               // we've read the last page, so we're done!
-                               locker.Unlock();
-                               vm_page_unreserve_pages(&reservation);
-                               return B_OK;
-                       }
-
                        // If it is cached only, requeue the page, so the 
respective queue
                        // roughly remains LRU first sorted.
                        if (page->state == PAGE_STATE_CACHED
@@ -840,6 +833,13 @@
                                DEBUG_PAGE_ACCESS_END(page);
                        }
 
+                       if (bytesLeft <= bytesInPage) {
+                               // we've read the last page, so we're done!
+                               locker.Unlock();
+                               vm_page_unreserve_pages(&reservation);
+                               return B_OK;
+                       }
+
                        // prepare a potential gap request
                        lastBuffer = buffer + bytesInPage;
                        lastLeft = bytesLeft - bytesInPage;


Other related posts:

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