Index: sys/kern/kern_sendfile.c =================================================================== --- sys/kern/kern_sendfile.c +++ sys/kern/kern_sendfile.c @@ -591,7 +591,7 @@ struct sf_io *sfio; vm_page_t *pa; struct mbuf *mtail; - int nios, space, npages, rhpages; + int nios, space, npages, rhpages, so_error; mtail = NULL; /* @@ -871,8 +871,9 @@ goto done; sbytes += space + hdrlen; /* pru_send stores errors after adding data to the socket here */ - if (so->so_error) { - error = so->so_error; + so_error = so->so_error; + if (so_error) { + error = so_error; so->so_error = 0; goto done; }