FreeBSD/sys/dev/cxgb/ulp/tom/cxgb_listen.c
/*
 * Releases a hold on the lctx.  Must be called with the listening socket's inp
 * locked.  The inp may be freed by this function and it returns NULL to
 * indicate this.
 */
Releases a hold on the lctx.  Must be called with the listening socket's inp
locked.  The inp may be freed by this function and it returns NULL to
indicate this.
Releases a hold on the lctx . Must be called with the listening socket ' s inp locked . The inp may be freed by this function and it returns NULL to indicate this .
static struct inpcb *
release_lctx(struct tom_data *td, struct listen_ctx *lctx)
{
	struct inpcb *inp = lctx->inp;
	int inp_freed = 0;
	INP_WLOCK_ASSERT(inp);
	if (refcount_release(&lctx->refcnt))
		inp_freed = free_lctx(td, lctx);
	return (inp_freed ? NULL : inp);
}
static struct inpcb * release_lctx ( struct tom_data * td , struct listen_ctx * lctx ) { struct inpcb * inp = lctx -> inp ; int inp_freed = 0 ; INP_WLOCK_ASSERT ( inp ) ; if ( refcount_release ( & lctx -> refcnt ) ) inp_freed = free_lctx ( td , lctx ) ; return ( inp_freed ? NULL : inp ) ; }
Releases a hold on the lctx.
Releases a hold on the lctx .