MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vdefer_inactive

Function vdefer_inactive

freebsd/kern/vfs_subr.c:3086–3111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3084}
3085
3086static void
3087vdefer_inactive(struct vnode *vp)
3088{
3089
3090 ASSERT_VI_LOCKED(vp, __func__);
3091 VNASSERT(vp->v_holdcnt > 0, vp,
3092 ("%s: vnode without hold count", __func__));
3093 if (VN_IS_DOOMED(vp)) {
3094 vdropl(vp);
3095 return;
3096 }
3097 if (vp->v_iflag & VI_DEFINACT) {
3098 VNASSERT(vp->v_holdcnt > 1, vp, ("lost hold count"));
3099 vdropl(vp);
3100 return;
3101 }
3102 if (vp->v_usecount > 0) {
3103 vp->v_iflag &= ~VI_OWEINACT;
3104 vdropl(vp);
3105 return;
3106 }
3107 vlazy(vp);
3108 vp->v_iflag |= VI_DEFINACT;
3109 VI_UNLOCK(vp);
3110 counter_u64_add(deferred_inact, 1);
3111}
3112
3113static void
3114vdefer_inactive_unlocked(struct vnode *vp)

Callers 2

vdefer_inactive_unlockedFunction · 0.85
vput_finalFunction · 0.85

Calls 3

vdroplFunction · 0.85
vlazyFunction · 0.85
counter_u64_addFunction · 0.50

Tested by

no test coverage detected