Minor refactor

parent 66a07c7a
...@@ -4125,7 +4125,7 @@ fellow_cache_obj_deref_locked(struct fellow_cache *fc, ...@@ -4125,7 +4125,7 @@ fellow_cache_obj_deref_locked(struct fellow_cache *fc,
struct fellow_cache_obj *fco) struct fellow_cache_obj *fco)
{ {
struct fellow_cache_seg *fcs; struct fellow_cache_seg *fcs;
unsigned refcnt; unsigned last, refcnt;
CHECK_OBJ_NOTNULL(fc, FELLOW_CACHE_MAGIC); CHECK_OBJ_NOTNULL(fc, FELLOW_CACHE_MAGIC);
CHECK_OBJ_NOTNULL(fco, FELLOW_CACHE_OBJ_MAGIC); CHECK_OBJ_NOTNULL(fco, FELLOW_CACHE_OBJ_MAGIC);
...@@ -4135,16 +4135,15 @@ fellow_cache_obj_deref_locked(struct fellow_cache *fc, ...@@ -4135,16 +4135,15 @@ fellow_cache_obj_deref_locked(struct fellow_cache *fc,
assert_cache_seg_consistency(fcs); assert_cache_seg_consistency(fcs);
if (fcs->refcnt == 1 && fcs->fco_infdb) { last = fcs->refcnt == 1 && fcs->fco_infdb;
refcnt = fellow_cache_seg_deref_locked(fc, fcs); refcnt = fellow_cache_seg_deref_locked(fc, fcs);
if (last) {
fcs->fco_infdb = 0; fcs->fco_infdb = 0;
AZ(refcnt); AZ(refcnt);
/* REF_FDB_REMOVE */ /* REF_FDB_REMOVE */
AZ(pthread_mutex_lock(&fc->fdb_mtx)); AZ(pthread_mutex_lock(&fc->fdb_mtx));
(void) VRBT_REMOVE(fellow_cache_fdb_head, &fc->fdb_head, fco); (void) VRBT_REMOVE(fellow_cache_fdb_head, &fc->fdb_head, fco);
AZ(pthread_mutex_unlock(&fc->fdb_mtx)); AZ(pthread_mutex_unlock(&fc->fdb_mtx));
} else {
refcnt = fellow_cache_seg_deref_locked(fc, fcs);
} }
return (refcnt); return (refcnt);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment