atomic_add_negative_relaxed
if (likely(!atomic_add_negative_relaxed(1, &ref->refcnt)))
return atomic_add_negative_relaxed(i, v);