diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2001-03-07 03:37:06 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2001-03-07 03:37:06 +0000 |
| commit | 19eb87d22a5314e238867d1e30894cc9dadf3ec4 (patch) | |
| tree | 086a326a81d3cd8d8bde0d8904c44ac51c8ed62b /sys/kern/sys_generic.c | |
| parent | 412503ae464b30081da204e8388c9ccaf8e12dce (diff) | |
Notes
Diffstat (limited to 'sys/kern/sys_generic.c')
| -rw-r--r-- | sys/kern/sys_generic.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index b5a9c416e9f5..a779711d549a 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -411,8 +411,11 @@ dofilewrite(p, fp, fd, buf, nbyte, offset, flags) if (auio.uio_resid != cnt && (error == ERESTART || error == EINTR || error == EWOULDBLOCK)) error = 0; - if (error == EPIPE) + if (error == EPIPE) { + PROC_LOCK(p); psignal(p, SIGPIPE); + PROC_UNLOCK(p); + } } cnt -= auio.uio_resid; #ifdef KTRACE @@ -504,8 +507,11 @@ writev(p, uap) if (auio.uio_resid != cnt && (error == ERESTART || error == EINTR || error == EWOULDBLOCK)) error = 0; - if (error == EPIPE) + if (error == EPIPE) { + PROC_LOCK(p); psignal(p, SIGPIPE); + PROC_UNLOCK(p); + } } cnt -= auio.uio_resid; #ifdef KTRACE |
