summaryrefslogtreecommitdiff
path: root/sys/src/cmd/cwfs/cw.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-05-21 18:25:39 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-05-21 18:25:39 +0200
commitb5565b0403d206e7d020c68b8c0ad42726125897 (patch)
tree2d0e44e268744affb21b0bfc278535cc1ccf1293 /sys/src/cmd/cwfs/cw.c
parentc910640fdd12b3a4c78cb56717e6018a25139b86 (diff)
cwfs: fix disappearing /tmp +t bug
Diffstat (limited to 'sys/src/cmd/cwfs/cw.c')
-rw-r--r--sys/src/cmd/cwfs/cw.c35
1 files changed, 2 insertions, 33 deletions
diff --git a/sys/src/cmd/cwfs/cw.c b/sys/src/cmd/cwfs/cw.c
index 51e39a215..579edd887 100644
--- a/sys/src/cmd/cwfs/cw.c
+++ b/sys/src/cmd/cwfs/cw.c
@@ -1297,7 +1297,7 @@ isdirty(Cw *cw, Iobuf *p, Off addr, int tag)
Off
cwrecur(Cw *cw, Off addr, int tag, int tag1, long qp)
{
- Iobuf *p, *b;
+ Iobuf *p;
Dentry *d;
long qp1;
int i, j, shouldstop;
@@ -1328,7 +1328,6 @@ cwrecur(Cw *cw, Off addr, int tag, int tag1, long qp)
}
cw->depth++;
- b = nil;
switch(tag) {
default:
fprint(2, "cwrecur: unknown tag %d %s\n", tag, cw->name);
@@ -1360,9 +1359,7 @@ cwrecur(Cw *cw, Off addr, int tag, int tag1, long qp)
for(i=0; i<DIRPERBUF; i++) {
d = getdir(p, i);
- if(!(d->mode & DALLOC))
- continue;
- if(d->mode & DTMP)
+ if((d->mode & (DALLOC|DTMP)) != DALLOC)
continue;
qp1 = d->qid.path & ~QPDIR;
if(tag == Tdir)
@@ -1393,20 +1390,6 @@ cwrecur(Cw *cw, Off addr, int tag, int tag1, long qp)
}
}
}
-
- for(i=0; i<DIRPERBUF; i++){
- d = getdir(p, i);
- if(!(d->mode & DALLOC))
- continue;
- if(d->mode & DTMP){
- if(!b){
- b = getbuf(devnone, Cwtmp, 0);
- memmove(b->iobuf, p->iobuf, RBUFSIZE);
- }
- memset(d, 0, sizeof(Dentry));
- p->flags |= Bmod;
- }
- }
break;
case Tind1:
@@ -1450,20 +1433,6 @@ cwrecur(Cw *cw, Off addr, int tag, int tag1, long qp)
cw->depth--;
- if(b){
- p = getbuf(cw->dev, na ? na : addr, Brd);
- if(!p || checktag(p, tag, qp)){
- fprint(2, "cwrecur: b/p null\n");
- na = 0;
- } else {
- memmove(p->iobuf, b->iobuf, RBUFSIZE);
- p->flags |= Bmod|Bimm;
- }
- if(p)
- putbuf(p);
- putbuf(b);
- }
-
if(na){
if(shouldstop){
if(cw->falsehits < 10)