ref: 77456108fa6c95480d949ecdbed78234b876ae1c
parent: 24b7b54a0864c824e09a8ec59e51f438663040cb
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Wed Nov 21 12:32:36 EST 2018
upas/fs: fix walk
--- a/sys/src/cmd/upas/fs/fs.c
+++ b/sys/src/cmd/upas/fs/fs.c
@@ -791,8 +791,8 @@
dowalk(Fid *f, char *name)
{char *rv, *p;
- int t, t1;
Hash *h;
+ int t;
if(f->qid.type != QTDIR)
return Enotdir;
@@ -801,13 +801,12 @@
/* this must catch everything except . and .. */
retry:
- t1 = FILE(f->qid.path);
- if((t1 == Qmbox || t1 == Qdir) && *name >= 'a' && *name <= 'z'){+ if(t == Qdir && *name >= 'a' && *name <= 'z'){h = hlook(f->qid.path, "xxx"); /* sleezy speedup */
- t1 = dindex(name);
- if(t1 == -1)
+ t = dindex(name);
+ if(t == -1)
h = nil;
- }else
+ } else
h = hlook(f->qid.path, name);
if(h != nil){if(h->mb)
@@ -821,8 +820,8 @@
f->m = h->m;
f->mb = h->mb;
f->qid = h->qid;
- if(t1 < Qmax)
- f->qid.path = PATH(f->m->id, t1); /* sleezy speedup */
+ if(t < Qmax)
+ f->qid.path = PATH(f->m->id, t); /* sleezy speedup */
rv = nil;
}else if((p = strchr(name, '.')) != nil && *name != '.'){*p = 0;
@@ -1101,8 +1100,6 @@
n = readtopdir(f, mbuf, off, cnt, messagesize - IOHDRSZ);
else if(t == Qmbox)
n = readmboxdir(f, mbuf, off, cnt, messagesize - IOHDRSZ);
- else if(t == Qmboxctl)
- n = 0;
else
n = readmsgdir(f, mbuf, off, cnt, messagesize - IOHDRSZ);
rhdr.count = n;
--
⑨