From e4b4574f41be26f5ae3814d171e674178ebae0fc Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 12 Mar 2007 12:23:45 +0000 Subject: [PATCH] Reordered somewhat unhealthy looking if-construct (first "currentPage->state == ..." then "currentPage != NULL"). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20377 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/cache/file_cache.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/system/kernel/cache/file_cache.cpp b/src/system/kernel/cache/file_cache.cpp index a96a4301dc..022f514575 100644 --- a/src/system/kernel/cache/file_cache.cpp +++ b/src/system/kernel/cache/file_cache.cpp @@ -902,7 +902,11 @@ cache_io(void *_cacheRef, off_t offset, addr_t buffer, size_t *_size, bool doWri // check if the dummy page is still in place restart_dummy_lookup: vm_page *currentPage = vm_cache_lookup_page(cache, offset); - if (currentPage->state == PAGE_STATE_BUSY) { + if (currentPage == NULL) { + // there is no page in place anymore, we'll put ours + // into it + vm_cache_insert_page(cache, page, offset); + } else if (currentPage->state == PAGE_STATE_BUSY) { if (currentPage->type == PAGE_TYPE_DUMMY) { // we let the other party add our page currentPage->queue_next = page; @@ -913,7 +917,7 @@ cache_io(void *_cacheRef, off_t offset, addr_t buffer, size_t *_size, bool doWri mutex_lock(&cache->lock); goto restart_dummy_lookup; } - } else if (currentPage != NULL) { + } else { // we need to copy our new page into the old one addr_t destinationAddress; vm_get_physical_page(page->physical_page_number * B_PAGE_SIZE, @@ -927,9 +931,6 @@ cache_io(void *_cacheRef, off_t offset, addr_t buffer, size_t *_size, bool doWri vm_put_physical_page(virtualAddress); vm_page_set_state(page, PAGE_STATE_FREE); - } else { - // there is no page in place anymore, we'll put ours into it - vm_cache_insert_page(cache, page, offset); } }