From: ChenLiang <chenlian...@huawei.com> Rebuild the cache_is_cached function by cache_get_by_addr. And drops the asserts because the caller is also asserting the same thing.
Signed-off-by: ChenLiang <chenlian...@huawei.com> Signed-off-by: Gonglei <arei.gong...@huawei.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> --- page_cache.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/page_cache.c b/page_cache.c index c78157b..3190c55 100644 --- a/page_cache.c +++ b/page_cache.c @@ -124,24 +124,6 @@ static size_t cache_get_cache_pos(const PageCache *cache, return pos; } -bool cache_is_cached(const PageCache *cache, uint64_t addr, - uint64_t current_age) -{ - size_t pos; - - g_assert(cache); - g_assert(cache->page_cache); - - pos = cache_get_cache_pos(cache, addr); - - if (cache->page_cache[pos].it_addr == addr) { - /* update the it_age when the cache hit */ - cache->page_cache[pos].it_age = current_age; - return true; - } - return false; -} - static CacheItem *cache_get_by_addr(const PageCache *cache, uint64_t addr) { size_t pos; @@ -159,14 +141,26 @@ uint8_t *get_cached_data(const PageCache *cache, uint64_t addr) return cache_get_by_addr(cache, addr)->it_data; } +bool cache_is_cached(const PageCache *cache, uint64_t addr, + uint64_t current_age) +{ + CacheItem *it; + + it = cache_get_by_addr(cache, addr); + + if (it->it_addr == addr) { + /* update the it_age when the cache hit */ + it->it_age = current_age; + return true; + } + return false; +} + int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata, uint64_t current_age) { - CacheItem *it = NULL; - - g_assert(cache); - g_assert(cache->page_cache); + CacheItem *it; /* actual update of entry */ it = cache_get_by_addr(cache, addr); -- 1.7.12.4