qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 2/4] Fix cache_resize to keep old entry age


From: Orit Wasserman
Subject: [Qemu-devel] [PATCH 2/4] Fix cache_resize to keep old entry age
Date: Mon, 25 Feb 2013 15:19:40 +0200

Instead of using cache_insert do the update itself

Signed-off-by: Orit Wasserman <address@hidden>
---
 page_cache.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/page_cache.c b/page_cache.c
index 748957b..21a4cde 100644
--- a/page_cache.c
+++ b/page_cache.c
@@ -192,18 +192,14 @@ int64_t cache_resize(PageCache *cache, int64_t 
new_num_pages)
         if (old_it->it_addr != -1) {
             /* check for collision, if there is, keep MRU page */
             new_it = cache_get_by_addr(new_cache, old_it->it_addr);
-            if (new_it->it_data) {
+            if (new_it->it_data && new_it->it_age >= old_it->it_age) {
                 /* keep the MRU page */
-                if (new_it->it_age >= old_it->it_age) {
-                    g_free(old_it->it_data);
-                } else {
-                    g_free(new_it->it_data);
-                    new_it->it_data = old_it->it_data;
-                    new_it->it_age = old_it->it_age;
-                    new_it->it_addr = old_it->it_addr;
-                }
+                g_free(old_it->it_data);
             } else {
-                cache_insert(new_cache, old_it->it_addr, old_it->it_data);
+                g_free(new_it->it_data);
+                new_it->it_data = old_it->it_data;
+                new_it->it_age = old_it->it_age;
+                new_it->it_addr = old_it->it_addr;
             }
         }
     }
-- 
1.7.11.7




reply via email to

[Prev in Thread] Current Thread [Next in Thread]