FreeBSD/sys/netinet/in_pcbgroup.c
/*
 * Remove pcbgroup entry and optional pcbgroup wildcard entry for this inpcb.
 */
Remove pcbgroup entry and optional pcbgroup wildcard entry for this inpcb.
Remove pcbgroup entry and optional pcbgroup wildcard entry for this inpcb .
void
in_pcbgroup_remove(struct inpcb *inp)
{
	struct inpcbgroup *pcbgroup;
	INP_WLOCK_ASSERT(inp);
	if (!in_pcbgroup_enabled(inp->inp_pcbinfo))
		return;
	if (inp->inp_flags2 & INP_PCBGROUPWILD)
		in_pcbwild_remove(inp);
	pcbgroup = inp->inp_pcbgroup;
	if (pcbgroup != NULL) {
		INP_GROUP_LOCK(pcbgroup);
		LIST_REMOVE(inp, inp_pcbgrouphash);
		inp->inp_pcbgroup = NULL;
		INP_GROUP_UNLOCK(pcbgroup);
	}
}
void in_pcbgroup_remove ( struct inpcb * inp ) { struct inpcbgroup * pcbgroup ; INP_WLOCK_ASSERT ( inp ) ; if ( ! in_pcbgroup_enabled ( inp -> inp_pcbinfo ) ) return ; if ( inp -> inp_flags2 & INP_PCBGROUPWILD ) in_pcbwild_remove ( inp ) ; pcbgroup = inp -> inp_pcbgroup ; if ( pcbgroup != NULL ) { INP_GROUP_LOCK ( pcbgroup ) ; LIST_REMOVE ( inp , inp_pcbgrouphash ) ; inp -> inp_pcbgroup = NULL ; INP_GROUP_UNLOCK ( pcbgroup ) ; } }
Remove pcbgroup entry and optional pcbgroup wildcard entry for this inpcb.
Remove pcbgroup entry and optional pcbgroup wildcard entry for this inpcb .