diff options
author | delphij <delphij@FreeBSD.org> | 2005-12-16 18:32:39 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2005-12-16 18:32:39 +0000 |
commit | 4ea00e0984a3a4d6fcce90be6d9b56a67e0f8ad6 (patch) | |
tree | 5d97920a9ca48d45bb41db8964a706e50eb33b5b /sys/kern/sys_pipe.c | |
parent | 1776659e0708263543337c118b652a1c7e244ced (diff) | |
download | FreeBSD-src-4ea00e0984a3a4d6fcce90be6d9b56a67e0f8ad6.zip FreeBSD-src-4ea00e0984a3a4d6fcce90be6d9b56a67e0f8ad6.tar.gz |
In pipe_write(): when uiomove() fails, do not spin on it forever.
Submitted by: Kostik Belousov <kostikbel at gmail.com> on -current@
Message-ID: <20051216151016.GE84442@deviant.zoral.local>
MFC After: 3 weeks
Diffstat (limited to 'sys/kern/sys_pipe.c')
-rw-r--r-- | sys/kern/sys_pipe.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index d79a319..a237d97 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -1176,6 +1176,8 @@ pipe_write(fp, uio, active_cred, flags, td) ("Pipe buffer overflow")); } pipeunlock(wpipe); + if (error != 0) + break; } else { /* * If the "read-side" has been blocked, wake it up now. |