diff options
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r-- | sys/kern/uipc_syscalls.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index ab5cb5f..0599b22 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -2207,10 +2207,11 @@ retry_space: * Send trailers. Wimp out and use writev(2). */ if (trl_uio != NULL) { + sbunlock(&so->so_snd); error = kern_writev(td, uap->s, trl_uio); - if (error) - goto done; - sbytes += td->td_retval[0]; + if (error == 0) + sbytes += td->td_retval[0]; + goto out; } done: |