summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-09-10 00:35:42 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2019-09-10 00:35:42 +0100
commitdb77e3a4742caf9f4ee18bc71c194edccb0f9d63 (patch)
treea40391fdcdd154854aaf7a56344a510d70278ea5
parentGet glibmm and fuse flags from pkg-config (diff)
downloadnetfs-db77e3a4742caf9f4ee18bc71c194edccb0f9d63.tar.bz2
netfs-db77e3a4742caf9f4ee18bc71c194edccb0f9d63.tar.xz
netfs-db77e3a4742caf9f4ee18bc71c194edccb0f9d63.zip
Fix listdir and caching of stats
-rw-r--r--netfs/fuse/fuseDirs.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/netfs/fuse/fuseDirs.cpp b/netfs/fuse/fuseDirs.cpp
index 58dab8e..5091d39 100644
--- a/netfs/fuse/fuseDirs.cpp
+++ b/netfs/fuse/fuseDirs.cpp
@@ -5,7 +5,7 @@
namespace NetFS {
FuseApp::OpenDir::OpenDir(DirectoryPrxPtr r, std::string p) :
remote(std::move(r)),
- remoteV2(remote->ice_getFacet() >= "v02" ? Ice::uncheckedCast<DirectoryV2Prx>(r) : nullptr),
+ remoteV2(remote->ice_getFacet() >= "v02" ? Ice::uncheckedCast<DirectoryV2Prx>(remote) : nullptr),
path(std::move(p))
{
}
@@ -51,12 +51,13 @@ FuseApp::readdir(const char * p, void * buf, fuse_fill_dir_t filler, off_t, stru
try {
auto od = getProxy<OpenDirPtr>(fi->fh);
std::string path(p);
- path += "/";
auto expiry = time(nullptr) + 2;
if (fcr->ListDir && od->remoteV2) {
for (const auto & e : od->remoteV2->listdir()) {
filler(buf, e.first.c_str(), nullptr, 0);
- statCache.add(path + e.first, converter.convert(e.second), expiry);
+ std::string k(path + e.first);
+ statCache.remove(k);
+ statCache.add(k, converter.convert(e.second), expiry);
}
}
else {