* Synchronize against unp_gc, which can trip over data as we are freeing it. */
| 2788 | * Synchronize against unp_gc, which can trip over data as we are freeing it. |
| 2789 | */ |
| 2790 | static void |
| 2791 | unp_dispose(struct socket *so) |
| 2792 | { |
| 2793 | struct unpcb *unp; |
| 2794 | |
| 2795 | unp = sotounpcb(so); |
| 2796 | UNP_LINK_WLOCK(); |
| 2797 | unp->unp_gcflag |= UNPGC_IGNORE_RIGHTS; |
| 2798 | UNP_LINK_WUNLOCK(); |
| 2799 | if (!SOLISTENING(so)) |
| 2800 | unp_dispose_mbuf(so->so_rcv.sb_mb); |
| 2801 | } |
| 2802 | |
| 2803 | static void |
| 2804 | unp_scan(struct mbuf *m0, void (*op)(struct filedescent **, int)) |
nothing calls this directly
no test coverage detected