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

Function vdropl

freebsd/kern/vfs_subr.c:3592–3613  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3590}
3591
3592void
3593vdropl(struct vnode *vp)
3594{
3595
3596 ASSERT_VI_LOCKED(vp, __func__);
3597 CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
3598 if (!refcount_release(&vp->v_holdcnt)) {
3599 VI_UNLOCK(vp);
3600 return;
3601 }
3602 if (!VN_IS_DOOMED(vp)) {
3603 vn_freevnodes_inc();
3604 vdrop_deactivate(vp);
3605 /*
3606 * Also unlocks the interlock. We can't assert on it as we
3607 * released our hold and by now the vnode might have been
3608 * freed.
3609 */
3610 return;
3611 }
3612 vdropl_final(vp);
3613}
3614
3615/*
3616 * Call VOP_INACTIVE on the vnode and manage the DOINGINACT and OWEINACT

Callers 10

vlrureclaimFunction · 0.85
vtryrecycleFunction · 0.85
vdefer_inactiveFunction · 0.85
vdefer_inactive_unlockedFunction · 0.85
vput_finalFunction · 0.85
vdropFunction · 0.85
vflushFunction · 0.85
vgonelFunction · 0.85
vfs_deferred_inactiveFunction · 0.85

Calls 4

refcount_releaseFunction · 0.85
vn_freevnodes_incFunction · 0.85
vdrop_deactivateFunction · 0.85
vdropl_finalFunction · 0.85

Tested by

no test coverage detected