xbzrle: rebuild the cache_is_cached function
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 <chenliang88@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
27af7d6ea5
commit
1b826f2778
38
page_cache.c
38
page_cache.c
@ -125,24 +125,6 @@ static size_t cache_get_cache_pos(const PageCache *cache,
|
|||||||
return pos;
|
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)
|
static CacheItem *cache_get_by_addr(const PageCache *cache, uint64_t addr)
|
||||||
{
|
{
|
||||||
size_t pos;
|
size_t pos;
|
||||||
@ -160,14 +142,26 @@ uint8_t *get_cached_data(const PageCache *cache, uint64_t addr)
|
|||||||
return cache_get_by_addr(cache, addr)->it_data;
|
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,
|
int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata,
|
||||||
uint64_t current_age)
|
uint64_t current_age)
|
||||||
{
|
{
|
||||||
|
|
||||||
CacheItem *it = NULL;
|
CacheItem *it;
|
||||||
|
|
||||||
g_assert(cache);
|
|
||||||
g_assert(cache->page_cache);
|
|
||||||
|
|
||||||
/* actual update of entry */
|
/* actual update of entry */
|
||||||
it = cache_get_by_addr(cache, addr);
|
it = cache_get_by_addr(cache, addr);
|
||||||
|
Loading…
Reference in New Issue
Block a user