Refactor for clarity: I think this is a good case for goto

parent 36aee12b
......@@ -1611,29 +1611,30 @@ stvfe_mutate(struct worker *wrk, struct objcore *oc)
CHECK_OBJ_NOTNULL(oh, OBJHEAD_MAGIC);
if (oc->refcnt == 1 && !Lck_Trylock(&oh->mtx)) {
if (oc->refcnt == 1) {
stv = oc_stv(wrk, oc);
stvfe = stv_stvfe(stv);
if (oc->refcnt != 1)
goto unlock;
if (stv != stvfe->memstv) {
AZ(retval);
goto unlock;
}
stv = oc_stv(wrk, oc);
stvfe = stv_stvfe(stv);
assert_memstv(stvfe, stv);
AN(oc->stobj->priv);
AN(oc->stobj->priv2);
AZ(retval);
if (stv != stvfe->memstv)
goto unlock;
fellow_cache_obj_evict_mutate(stvfe->fc,
oc->stobj->priv);
assert_memstv(stvfe, stv);
AN(oc->stobj->priv);
AN(oc->stobj->priv2);
fellow_cache_obj_evict_mutate(stvfe->fc,
oc->stobj->priv);
oc->stobj->priv = NULL;
oc->stobj->stevedore = stvfe->dskstv;
retval = 1;
stvfe->stats->c_mem_obj_mutate++;
wrk->stats->n_vampireobject++;
wrk->stats->n_object--;
oc->stobj->priv = NULL;
oc->stobj->stevedore = stvfe->dskstv;
retval = 1;
stvfe->stats->c_mem_obj_mutate++;
wrk->stats->n_vampireobject++;
wrk->stats->n_object--;
}
unlock:
Lck_Unlock(&oh->mtx);
}
......
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