diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -1062,7 +1062,7 @@ control = NULL; } else { soroverflow_locked(so2); - error = ENOBUFS; + error = (so->so_state & SS_NBIO) ? EAGAIN : ENOBUFS; } if (nam != NULL) unp_disconnect(unp, unp2);