Changeset View
Changeset View
Standalone View
Standalone View
head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
Show First 20 Lines • Show All 1,118 Lines • ▼ Show 20 Lines | if (flags & MSG_OOB) | ||||
space += 1024; | space += 1024; | ||||
if (atomic && resid > ssk->xmit_size_goal - SDP_HEAD_SIZE) { | if (atomic && resid > ssk->xmit_size_goal - SDP_HEAD_SIZE) { | ||||
SOCKBUF_UNLOCK(&so->so_snd); | SOCKBUF_UNLOCK(&so->so_snd); | ||||
error = EMSGSIZE; | error = EMSGSIZE; | ||||
goto release; | goto release; | ||||
} | } | ||||
if (space < resid && | if (space < resid && | ||||
(atomic || space < so->so_snd.sb_lowat)) { | (atomic || space < so->so_snd.sb_lowat)) { | ||||
if ((so->so_state & SS_NBIO) || (flags & MSG_NBIO)) { | if ((so->so_state & SS_NBIO) || | ||||
(flags & (MSG_NBIO | MSG_DONTWAIT)) != 0) { | |||||
SOCKBUF_UNLOCK(&so->so_snd); | SOCKBUF_UNLOCK(&so->so_snd); | ||||
error = EWOULDBLOCK; | error = EWOULDBLOCK; | ||||
goto release; | goto release; | ||||
} | } | ||||
error = sbwait(&so->so_snd); | error = sbwait(&so->so_snd); | ||||
SOCKBUF_UNLOCK(&so->so_snd); | SOCKBUF_UNLOCK(&so->so_snd); | ||||
if (error) | if (error) | ||||
goto release; | goto release; | ||||
▲ Show 20 Lines • Show All 828 Lines • Show Last 20 Lines |