summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/pipe/fifo.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/libfs/src/pipe/fifo.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/cpukit/libfs/src/pipe/fifo.c b/cpukit/libfs/src/pipe/fifo.c
index 71d5f8598a..3275e5f1fd 100644
--- a/cpukit/libfs/src/pipe/fifo.c
+++ b/cpukit/libfs/src/pipe/fifo.c
@@ -149,18 +149,15 @@ static int pipe_new(
pipe = *pipep;
if (pipe == NULL) {
err = pipe_alloc(&pipe);
- if (err)
- goto out;
+ if (err) {
+ pipe_unlock();
+ return err;
+ }
}
PIPE_LOCK(pipe);
- if (*pipep == NULL) {
- if (err)
- pipe_free(pipe);
- else
- *pipep = pipe;
- }
+ *pipep = pipe;
out:
pipe_unlock();