From: levin li <xingke.lwp at taobao.com> Since we hold lock while calling find_cache_entry() and reclaiming the cache entry, there's no necessary for RECLAIM flag Signed-off-by: levin li <xingke.lwp at taobao.com> --- sheep/object_cache.c | 17 +++-------------- 1 files changed, 3 insertions(+), 14 deletions(-) diff --git a/sheep/object_cache.c b/sheep/object_cache.c index 1f3e631..a8db084 100644 --- a/sheep/object_cache.c +++ b/sheep/object_cache.c @@ -40,13 +40,10 @@ #define CACHE_VDI_BIT (UINT32_C(1) << CACHE_VDI_SHIFT) #define CACHE_BLOCK_SIZE ((UINT64_C(1) << 10) * 64) /* 64 KB */ -#define CACHE_RECLAIM_SHIFT 27 -#define CACHE_RECLAIM_BIT (UINT32_C(1) << CACHE_RECLAIM_SHIFT) - -#define CACHE_CREATE_SHIFT 26 +#define CACHE_CREATE_SHIFT 27 #define CACHE_CREATE_BIT (UINT32_C(1) << CACHE_CREATE_SHIFT) -#define CACHE_INDEX_MASK (CACHE_RECLAIM_BIT | CACHE_CREATE_BIT) +#define CACHE_INDEX_MASK (CACHE_CREATE_BIT) struct global_cache { uint64_t cache_size; @@ -457,8 +454,6 @@ static int reclaim_object(struct object_cache_entry *entry) } } - entry->idx |= CACHE_RECLAIM_BIT; - ret = remove_cache_object(oc, entry->idx); if (ret == SD_RES_SUCCESS) del_from_object_tree_and_list(entry, &oc->object_tree); @@ -671,13 +666,7 @@ static void add_to_object_cache(struct object_cache *oc, uint32_t idx) static inline struct object_cache_entry * find_cache_entry(struct object_cache *oc, uint32_t idx) { - struct object_cache_entry *entry; - - entry = object_tree_search(&oc->object_tree, idx); - if (!entry || entry->idx & CACHE_RECLAIM_BIT) - return NULL; - - return entry; + return object_tree_search(&oc->object_tree, idx); } static int object_cache_lookup(struct object_cache *oc, uint32_t idx, -- 1.7.1 |