| 1694 | } |
| 1695 | |
| 1696 | static struct vnode * |
| 1697 | vn_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 | |
| 1712 | static void |
| 1713 | vn_free(struct vnode *vp) |
no test coverage detected