diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-05-21 18:25:39 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-05-21 18:25:39 +0200 |
commit | b5565b0403d206e7d020c68b8c0ad42726125897 (patch) | |
tree | 2d0e44e268744affb21b0bfc278535cc1ccf1293 /sys/src/cmd/cwfs/cw.c | |
parent | c910640fdd12b3a4c78cb56717e6018a25139b86 (diff) |
cwfs: fix disappearing /tmp +t bug
Diffstat (limited to 'sys/src/cmd/cwfs/cw.c')
-rw-r--r-- | sys/src/cmd/cwfs/cw.c | 35 |
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) |