diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -3007,7 +3007,7 @@ pr = so->so_proto; if (pr->pr_flush != NULL) pr->pr_flush(so, how); - if (how != SHUT_WR) + if (how != SHUT_WR && !(pr->pr_flags & PR_SOCKBUF)) sorflush(so); if (how != SHUT_RD) { error = pr->pr_shutdown(so);