Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_usrreq.c
Show First 20 Lines • Show All 2,765 Lines • ▼ Show 20 Lines | unp_dispose(struct socket *so) | ||||
/* | /* | ||||
* Grab our special mbufs before calling sbrelease(). | * Grab our special mbufs before calling sbrelease(). | ||||
*/ | */ | ||||
SOCK_RECVBUF_LOCK(so); | SOCK_RECVBUF_LOCK(so); | ||||
m = sbcut_locked(sb, sb->sb_ccc); | m = sbcut_locked(sb, sb->sb_ccc); | ||||
KASSERT(sb->sb_ccc == 0 && sb->sb_mb == 0 && sb->sb_mbcnt == 0, | KASSERT(sb->sb_ccc == 0 && sb->sb_mb == 0 && sb->sb_mbcnt == 0, | ||||
("%s: ccc %u mb %p mbcnt %u", __func__, | ("%s: ccc %u mb %p mbcnt %u", __func__, | ||||
sb->sb_ccc, (void *)sb->sb_mb, sb->sb_mbcnt)); | sb->sb_ccc, (void *)sb->sb_mb, sb->sb_mbcnt)); | ||||
sbrelease_locked(sb, so); | sbrelease_locked(so, SO_RCV); | ||||
SOCK_RECVBUF_UNLOCK(so); | SOCK_RECVBUF_UNLOCK(so); | ||||
if (SOCK_IO_RECV_OWNED(so)) | if (SOCK_IO_RECV_OWNED(so)) | ||||
SOCK_IO_RECV_UNLOCK(so); | SOCK_IO_RECV_UNLOCK(so); | ||||
unp_dispose_mbuf(m); | unp_dispose_mbuf(m); | ||||
} | } | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 192 Lines • Show Last 20 Lines |