Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/uipc_socket.c
Show First 20 Lines • Show All 1,760 Lines • ▼ Show 20 Lines | if (mp == NULL) { | ||||
/* | /* | ||||
* The MT_SONAME mbuf has already been removed | * The MT_SONAME mbuf has already been removed | ||||
* from the record, so it is necessary to | * from the record, so it is necessary to | ||||
* remove the data mbufs, if any, to preserve | * remove the data mbufs, if any, to preserve | ||||
* the invariant in the case of PR_ADDR that | * the invariant in the case of PR_ADDR that | ||||
* requires MT_SONAME mbufs at the head of | * requires MT_SONAME mbufs at the head of | ||||
* each record. | * each record. | ||||
*/ | */ | ||||
if (m && pr->pr_flags & PR_ATOMIC && | if (pr->pr_flags & PR_ATOMIC && | ||||
((flags & MSG_PEEK) == 0)) | ((flags & MSG_PEEK) == 0)) | ||||
(void)sbdroprecord_locked(&so->so_rcv); | (void)sbdroprecord_locked(&so->so_rcv); | ||||
SOCKBUF_UNLOCK(&so->so_rcv); | SOCKBUF_UNLOCK(&so->so_rcv); | ||||
goto release; | goto release; | ||||
} | } | ||||
} else | } else | ||||
uio->uio_resid -= len; | uio->uio_resid -= len; | ||||
SOCKBUF_LOCK_ASSERT(&so->so_rcv); | SOCKBUF_LOCK_ASSERT(&so->so_rcv); | ||||
▲ Show 20 Lines • Show All 2,005 Lines • Show Last 20 Lines |