mirror of
https://github.com/9001/copyparty.git
synced 2025-09-28 12:42:26 -06:00
partyfuse: readdir from cache;
dircache only applied to `getattr` and not `readdir` itself
This commit is contained in:
parent
1cdb388090
commit
06d2654b3f
|
@ -902,9 +902,7 @@ class CPPF(Operations):
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def _readdir(self, path, fh=None):
|
def _readdir(self, path, fh=None):
|
||||||
path = path.strip("/")
|
dbg("dircache miss")
|
||||||
dbg("readdir %r [%s]", path, fh)
|
|
||||||
|
|
||||||
ret = self.gw.listdir(path)
|
ret = self.gw.listdir(path)
|
||||||
if not self.n_dircache:
|
if not self.n_dircache:
|
||||||
return ret
|
return ret
|
||||||
|
@ -914,11 +912,17 @@ class CPPF(Operations):
|
||||||
self.dircache.append(cn)
|
self.dircache.append(cn)
|
||||||
self.clean_dircache()
|
self.clean_dircache()
|
||||||
|
|
||||||
# import pprint; pprint.pprint(ret)
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def readdir(self, path, fh=None):
|
def readdir(self, path, fh=None):
|
||||||
return [".", ".."] + list(self._readdir(path, fh))
|
dbg("readdir %r [%s]", path, fh)
|
||||||
|
path = path.strip("/")
|
||||||
|
cn = self.get_cached_dir(path)
|
||||||
|
if cn:
|
||||||
|
ret = cn.data
|
||||||
|
else:
|
||||||
|
ret = self._readdir(path, fh)
|
||||||
|
return [".", ".."] + list(ret)
|
||||||
|
|
||||||
def read(self, path, length, offset, fh=None):
|
def read(self, path, length, offset, fh=None):
|
||||||
req_max = 1024 * 1024 * 8
|
req_max = 1024 * 1024 * 8
|
||||||
|
@ -993,7 +997,6 @@ class CPPF(Operations):
|
||||||
if cn:
|
if cn:
|
||||||
dents = cn.data
|
dents = cn.data
|
||||||
else:
|
else:
|
||||||
dbg("cache miss")
|
|
||||||
dents = self._readdir(dirpath)
|
dents = self._readdir(dirpath)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue