Page MenuHomeFreeBSD

D34309.diff
No OneTemporary

D34309.diff

diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -785,8 +785,10 @@
len = auio.uio_resid;
error = sosend(so, mp->msg_name, &auio, 0, control, flags, td);
if (error != 0) {
- if (auio.uio_resid != len && (error == ERESTART ||
- error == EINTR || error == EWOULDBLOCK))
+ if (auio.uio_resid != len &&
+ (so->so_proto->pr_flags & PR_ATOMIC) == 0 &&
+ (error == ERESTART || error == EINTR ||
+ error == EWOULDBLOCK))
error = 0;
/* Generation of SIGPIPE can be controlled per socket */
if (error == EPIPE && !(so->so_options & SO_NOSIGPIPE) &&

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 2, 11:21 PM (21 m, 8 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16417783
Default Alt Text
D34309.diff (658 B)

Event Timeline