Fix some broken stuff in VFS test environment.

It's still lagging behind the metal environment but here's some work towards
fixing it at least.
This commit is contained in:
Andreas Kling 2018-11-07 15:51:39 +01:00
parent 981a3ae4b3
commit 61a84193d7
Notes: sideshowbarker 2024-07-19 18:32:32 +09:00
4 changed files with 27 additions and 15 deletions

View file

@ -258,10 +258,10 @@ void VirtualFileSystem::enumerateDirectoryInode(InodeIdentifier directoryInode,
}
#ifndef SERENITY
void VirtualFileSystem::listDirectory(const String& path)
void VirtualFileSystem::listDirectory(const String& path, InodeIdentifier base)
{
int error;
auto directoryInode = resolvePath(path, error);
auto directoryInode = resolvePath(path, error, base);
if (!directoryInode.isValid())
return;
@ -359,10 +359,10 @@ void VirtualFileSystem::listDirectory(const String& path)
});
}
void VirtualFileSystem::listDirectoryRecursively(const String& path)
void VirtualFileSystem::listDirectoryRecursively(const String& path, InodeIdentifier base)
{
int error;
auto directory = resolvePath(path, error);
auto directory = resolvePath(path, error, base);
if (!directory.isValid())
return;
@ -374,7 +374,7 @@ void VirtualFileSystem::listDirectoryRecursively(const String& path)
if (entry.name != "." && entry.name != "..") {
char buf[4096];
ksprintf(buf, "%s/%s", path.characters(), entry.name.characters());
listDirectoryRecursively(buf);
listDirectoryRecursively(buf, base);
}
} else {
kprintf("%s/%s\n", path.characters(), entry.name.characters());