diff --git a/src/system/kernel/fs/EntryCache.cpp b/src/system/kernel/fs/EntryCache.cpp index 8d288facda..2c44d60e88 100644 --- a/src/system/kernel/fs/EntryCache.cpp +++ b/src/system/kernel/fs/EntryCache.cpp @@ -204,6 +204,22 @@ EntryCache::Lookup(ino_t dirID, const char* name, ino_t& _nodeID) } +const char* +EntryCache::DebugReverseLookup(ino_t nodeID, ino_t& _dirID) +{ + for (EntryTable::Iterator it = fEntries.GetIterator(); + EntryCacheEntry* entry = it.Next();) { + if (nodeID == entry->node_id && strcmp(entry->name, ".") != 0 + && strcmp(entry->name, "..") != 0) { + _dirID = entry->dir_id; + return entry->name; + } + } + + return NULL; +} + + void EntryCache::_AddEntryToCurrentGeneration(EntryCacheEntry* entry) { diff --git a/src/system/kernel/fs/EntryCache.h b/src/system/kernel/fs/EntryCache.h index 12726b1582..91d74043ed 100644 --- a/src/system/kernel/fs/EntryCache.h +++ b/src/system/kernel/fs/EntryCache.h @@ -94,6 +94,8 @@ public: bool Lookup(ino_t dirID, const char* name, ino_t& nodeID); + const char* DebugReverseLookup(ino_t nodeID, ino_t& _dirID); + private: static const int32 kGenerationCount = 8;