Index: sys/kern/kern_sendfile.c =================================================================== --- sys/kern/kern_sendfile.c +++ sys/kern/kern_sendfile.c @@ -866,8 +866,20 @@ CURVNET_RESTORE(); m = NULL; /* pru_send always consumes */ - if (error) + if (error) { + if (error == ERESTART) + error = EINTR; + if (error == EINTR || + error == EAGAIN) { + if (rem <= 0) { + error = 0; + goto noerr; + } + sbytes += space + hdrlen; + } goto done; + } +noerr: sbytes += space + hdrlen; if (hdrlen) hdrlen = 0;