summaryrefslogtreecommitdiff
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-03-07 03:37:06 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-03-07 03:37:06 +0000
commit19eb87d22a5314e238867d1e30894cc9dadf3ec4 (patch)
tree086a326a81d3cd8d8bde0d8904c44ac51c8ed62b /sys/kern/sys_generic.c
parent412503ae464b30081da204e8388c9ccaf8e12dce (diff)
Notes
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r--sys/kern/sys_generic.c10
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