Loading lfs/src/db/db_ops.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -64,8 +64,10 @@ void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { auto dentry_iter = db->NewIterator(rocksdb::ReadOptions()); for (dentry_iter->Seek(prefix); dentry_iter->Valid() && dentry_iter->key().starts_with(prefix); dentry_iter->Next()) { ADAFS_DATA->spdlogger()->trace("Dentry:"); key = dentry_iter->key().ToString(); val = dentry_iter->value().ToString(); ADAFS_DATA->spdlogger()->trace("key '{}' value '{}'", key, val); // Retrieve filename from key key.erase(0, 2); // Erase prefix <d_> Loading @@ -79,7 +81,7 @@ void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { val.erase(0, pos + 1); // Erase inode + delim dentry.mode(static_cast<mode_t>(stoul(val))); // val holds only mode // append dentry to dentries vector ADAFS_DATA->spdlogger()->trace("Retrieved dentry: name {} inode {} mode {}", dentry.name(), dentry.inode(), ADAFS_DATA->spdlogger()->trace("Formatted: name {} inode {} mode {:o}", dentry.name(), dentry.inode(), dentry.mode()); dentries.push_back(dentry); } Loading lfs/src/db/util.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ string db_build_dentry_key(const fuse_ino_t inode, const string& name) { * @return */ string db_build_dentry_prefix(const fuse_ino_t inode) { return ("d_"s + fmt::FormatInt(inode).str()); return ("d_"s + fmt::FormatInt(inode).str() + "_"s); } string db_build_dentry_value(const fuse_ino_t inode, const mode_t mode) { Loading lfs/src/fuse_ops/directory.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -141,8 +141,6 @@ void adafs_ll_readdir(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, st get_dentries(*dentries, ino); //getdentries here for (const auto& dentry : *dentries) { ADAFS_DATA->spdlogger()->trace("readdir dentry: name {} inode {} mode {:o}", dentry.name(), dentry.inode(), dentry.mode()); /* * Generate tiny stat with inode and mode information. * This information is necessary so that the entry shows up later at all. Loading Loading
lfs/src/db/db_ops.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -64,8 +64,10 @@ void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { auto dentry_iter = db->NewIterator(rocksdb::ReadOptions()); for (dentry_iter->Seek(prefix); dentry_iter->Valid() && dentry_iter->key().starts_with(prefix); dentry_iter->Next()) { ADAFS_DATA->spdlogger()->trace("Dentry:"); key = dentry_iter->key().ToString(); val = dentry_iter->value().ToString(); ADAFS_DATA->spdlogger()->trace("key '{}' value '{}'", key, val); // Retrieve filename from key key.erase(0, 2); // Erase prefix <d_> Loading @@ -79,7 +81,7 @@ void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { val.erase(0, pos + 1); // Erase inode + delim dentry.mode(static_cast<mode_t>(stoul(val))); // val holds only mode // append dentry to dentries vector ADAFS_DATA->spdlogger()->trace("Retrieved dentry: name {} inode {} mode {}", dentry.name(), dentry.inode(), ADAFS_DATA->spdlogger()->trace("Formatted: name {} inode {} mode {:o}", dentry.name(), dentry.inode(), dentry.mode()); dentries.push_back(dentry); } Loading
lfs/src/db/util.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ string db_build_dentry_key(const fuse_ino_t inode, const string& name) { * @return */ string db_build_dentry_prefix(const fuse_ino_t inode) { return ("d_"s + fmt::FormatInt(inode).str()); return ("d_"s + fmt::FormatInt(inode).str() + "_"s); } string db_build_dentry_value(const fuse_ino_t inode, const mode_t mode) { Loading
lfs/src/fuse_ops/directory.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -141,8 +141,6 @@ void adafs_ll_readdir(fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, st get_dentries(*dentries, ino); //getdentries here for (const auto& dentry : *dentries) { ADAFS_DATA->spdlogger()->trace("readdir dentry: name {} inode {} mode {:o}", dentry.name(), dentry.inode(), dentry.mode()); /* * Generate tiny stat with inode and mode information. * This information is necessary so that the entry shows up later at all. Loading