* Only to be used by vgone. */
| 2686 | * Only to be used by vgone. |
| 2687 | */ |
| 2688 | void |
| 2689 | cache_purge_vgone(struct vnode *vp) |
| 2690 | { |
| 2691 | struct mtx *vlp; |
| 2692 | |
| 2693 | VNPASS(VN_IS_DOOMED(vp), vp); |
| 2694 | if (cache_has_entries(vp)) { |
| 2695 | cache_purge_impl(vp); |
| 2696 | return; |
| 2697 | } |
| 2698 | |
| 2699 | /* |
| 2700 | * Serialize against a potential thread doing cache_purge. |
| 2701 | */ |
| 2702 | vlp = VP2VNODELOCK(vp); |
| 2703 | mtx_wait_unlocked(vlp); |
| 2704 | if (cache_has_entries(vp)) { |
| 2705 | cache_purge_impl(vp); |
| 2706 | return; |
| 2707 | } |
| 2708 | return; |
| 2709 | } |
| 2710 | |
| 2711 | /* |
| 2712 | * Remove all negative entries for a particular directory vnode. |
no test coverage detected