v_usecount
vp->v_usecount = 0;
++bp->b_vp->v_usecount;
--bp->b_vp->v_usecount;
vp->v_usecount = 0;
vp->v_usecount == 0 &&
int v_usecount;
vp->v_usecount = 1;
mvp->v_usecount = 0;
VIMPL_TO_VNODE(mvip)->v_usecount = 0;
VIMPL_TO_VNODE(mvip)->v_usecount = 1;
use = atomic_load_relaxed(&vp->v_usecount);
for (use = atomic_load_relaxed(&vp->v_usecount);; use = next) {
next = atomic_cas_uint(&vp->v_usecount, use, use - 1);
atomic_inc_uint(&vp->v_usecount);
atomic_inc_uint(&vp->v_usecount);
vp->v_usecount = 1;
for (use = atomic_load_relaxed(&vp->v_usecount);; use = next) {
next = atomic_cas_uint(&vp->v_usecount,
return atomic_load_relaxed(&vp->v_usecount) & VUSECOUNT_MASK;
bool gated = (atomic_load_relaxed(&vp->v_usecount) & VUSECOUNT_GATE);
atomic_or_uint(&vp->v_usecount, VUSECOUNT_GATE);
atomic_and_uint(&vp->v_usecount, ~VUSECOUNT_GATE);
atomic_or_uint(&vp->v_usecount, VUSECOUNT_GATE);
atomic_and_uint(&vp->v_usecount, ~VUSECOUNT_GATE);
for (use = atomic_load_relaxed(&vp->v_usecount);; use = next) {
next = atomic_cas_uint(&vp->v_usecount, use, use - 1);
for (use = atomic_load_relaxed(&vp->v_usecount);; use = next) {
next = atomic_load_relaxed(&vp->v_usecount);
next = atomic_cas_uint(&vp->v_usecount, use, next);
use = atomic_load_relaxed(&vp->v_usecount);
int v_usecount; /* i reference count */
if (vp->v_usecount <= mincount)
PRWORD(ovflw, " %*d", 5, 1, vp->v_usecount & VUSECOUNT_MASK);