Changeset View
Changeset View
Standalone View
Standalone View
sys/netgraph/ng_socket.c
Show First 20 Lines • Show All 987 Lines • ▼ Show 20 Lines | if (m == NULL) { | ||||
SOCKBUF_UNLOCK(&so->so_rcv); | SOCKBUF_UNLOCK(&so->so_rcv); | ||||
TRAP_ERROR; | TRAP_ERROR; | ||||
return (ENOBUFS); | return (ENOBUFS); | ||||
} | } | ||||
/* Send it up to the socket. */ | /* Send it up to the socket. */ | ||||
if (sbappendaddr_locked(&so->so_rcv, (struct sockaddr *)&addr, m, | if (sbappendaddr_locked(&so->so_rcv, (struct sockaddr *)&addr, m, | ||||
NULL) == 0) { | NULL) == 0) { | ||||
SOCKBUF_UNLOCK(&so->so_rcv); | soroverflow_locked(so); | ||||
TRAP_ERROR; | TRAP_ERROR; | ||||
m_freem(m); | m_freem(m); | ||||
return (ENOBUFS); | return (ENOBUFS); | ||||
} | } | ||||
/* sorwakeup_locked () releases the lock internally. */ | /* sorwakeup_locked () releases the lock internally. */ | ||||
sorwakeup_locked(so); | sorwakeup_locked(so); | ||||
▲ Show 20 Lines • Show All 230 Lines • Show Last 20 Lines |