summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_pipe.c
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2005-12-16 18:32:39 +0000
committerdelphij <delphij@FreeBSD.org>2005-12-16 18:32:39 +0000
commit4ea00e0984a3a4d6fcce90be6d9b56a67e0f8ad6 (patch)
tree5d97920a9ca48d45bb41db8964a706e50eb33b5b /sys/kern/sys_pipe.c
parent1776659e0708263543337c118b652a1c7e244ced (diff)
downloadFreeBSD-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.c2
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.
OpenPOWER on IntegriCloud