xv6

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit e670a4835858b48e1568742dbe939800e2d44c13
parent deca9fef83450fa9659b750497d46e7887064aa5
Author: kolya <kolya>
Date:   Wed, 15 Oct 2008 17:42:56 +0000

as rtm noticed, avoid doubly-freeing pipe page

Diffstat:
Mpipe.c | 7++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 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