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

Function vn_alloc

freebsd/kern/vfs_subr.c:1696–1710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1694}
1695
1696static struct vnode *
1697vn_alloc(struct mount *mp)
1698{
1699 u_long rnumvnodes;
1700
1701 if (__predict_false(vn_alloc_cyclecount != 0))
1702 return (vn_alloc_hard(mp));
1703 rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1;
1704 if (__predict_false(vnlru_under_unlocked(rnumvnodes, vlowat))) {
1705 atomic_subtract_long(&numvnodes, 1);
1706 return (vn_alloc_hard(mp));
1707 }
1708
1709 return (uma_zalloc_smr(vnode_zone, M_WAITOK));
1710}
1711
1712static void
1713vn_free(struct vnode *vp)

Callers 2

vfs_subr.cFile · 0.85
getnewvnode_reserveFunction · 0.85

Calls 5

vn_alloc_hardFunction · 0.85
vnlru_under_unlockedFunction · 0.85
atomic_subtract_longFunction · 0.85
uma_zalloc_smrFunction · 0.85
atomic_fetchadd_longFunction · 0.50

Tested by

no test coverage detected