allow long names again
This commit is contained in:
parent
0517a730db
commit
1542186378
15
fs.c
15
fs.c
|
@ -504,8 +504,8 @@ namei(char *path, int mode, uint *ret_off,
|
||||||
uint off, dev;
|
uint off, dev;
|
||||||
struct buf *bp;
|
struct buf *bp;
|
||||||
struct dirent *ep;
|
struct dirent *ep;
|
||||||
int i, atend;
|
int i, l, atend;
|
||||||
unsigned ninum;
|
uint ninum;
|
||||||
|
|
||||||
if(ret_off)
|
if(ret_off)
|
||||||
*ret_off = 0xffffffff;
|
*ret_off = 0xffffffff;
|
||||||
|
@ -544,10 +544,9 @@ namei(char *path, int mode, uint *ret_off,
|
||||||
|
|
||||||
for(i = 0; cp[i] != 0 && cp[i] != '/'; i++)
|
for(i = 0; cp[i] != 0 && cp[i] != '/'; i++)
|
||||||
;
|
;
|
||||||
if(i > DIRSIZ){
|
l = i;
|
||||||
iput(dp);
|
if(i > DIRSIZ)
|
||||||
return 0;
|
l = DIRSIZ;
|
||||||
}
|
|
||||||
|
|
||||||
for(off = 0; off < dp->size; off += BSIZE){
|
for(off = 0; off < dp->size; off += BSIZE){
|
||||||
bp = bread(dp->dev, bmap(dp, off / BSIZE));
|
bp = bread(dp->dev, bmap(dp, off / BSIZE));
|
||||||
|
@ -556,8 +555,8 @@ namei(char *path, int mode, uint *ret_off,
|
||||||
ep++){
|
ep++){
|
||||||
if(ep->inum == 0)
|
if(ep->inum == 0)
|
||||||
continue;
|
continue;
|
||||||
if(memcmp(cp, ep->name, i) == 0 &&
|
if(memcmp(cp, ep->name, l) == 0 &&
|
||||||
(i == DIRSIZ || ep->name[i]== 0)){
|
(l == DIRSIZ || ep->name[l]== 0)){
|
||||||
// entry matches path element
|
// entry matches path element
|
||||||
off += (uchar*)ep - bp->data;
|
off += (uchar*)ep - bp->data;
|
||||||
ninum = ep->inum;
|
ninum = ep->inum;
|
||||||
|
|
Loading…
Reference in a new issue