diff --git a/src/fuse_getattr.cpp b/src/fuse_getattr.cpp index b8343423..efcbbd41 100644 --- a/src/fuse_getattr.cpp +++ b/src/fuse_getattr.cpp @@ -155,36 +155,13 @@ namespace l fullpath = fs::path::make(basepath,fusepath_); rv = l::getattr(fullpath,followsymlinks_,st_); - if(rv == 0) - break; if((rv == -1) && (errno != ENOENT)) - break; - - - - for(int c = 0; c < 2; c++) { - const char *basepath; - - basepath = cache.find(fusepath_); - if(!basepath) - { - rv = searchFunc_(branches_,fusepath_,&basepaths); - if(rv == -1) - return -errno; - - basepath = cache.insert(fusepath_,basepaths[0]); - } - - fullpath = fs::path::make(basepath,fusepath_); - - rv = l::getattr(fullpath,followsymlinks_,st_); - if(rv == 0) - break; - if((rv == -1) && (errno != ENOENT)) - break; + rv = searchFunc_(branches_,fusepath_,&basepaths); + if(rv == -1) + return -errno; - + basepath = cache.insert(fusepath_,basepaths[0]); } if(rv == -1)