summaryrefslogtreecommitdiff
path: root/pipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'pipe.c')
-rw-r--r--pipe.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/pipe.c b/pipe.c
index fda3788..8a580f9 100644
--- a/pipe.c
+++ b/pipe.c
@@ -69,10 +69,11 @@ pipeclose(struct pipe *p, int writable)
p->readopen = 0;
wakeup(&p->writep);
}
- release(&p->lock);
-
- if(p->readopen == 0 && p->writeopen == 0)
+ if(p->readopen == 0 && p->writeopen == 0) {
+ release(&p->lock);
kfree((char*)p, PAGE);
+ } else
+ release(&p->lock);
}
//PAGEBREAK: 30