diff --git a/VirtualFileSystem/VirtualFileSystem.cpp b/VirtualFileSystem/VirtualFileSystem.cpp index f6e3484d04..c7d7d80df8 100644 --- a/VirtualFileSystem/VirtualFileSystem.cpp +++ b/VirtualFileSystem/VirtualFileSystem.cpp @@ -169,8 +169,8 @@ RetainPtr VFS::create(const String& path, int& error, int option } InodeIdentifier parent_dir; - auto existing_dir = resolve_path(path, base, error, 0, &parent_dir); - if (existing_dir.is_valid()) { + auto existing_file = resolve_path(path, base, error, 0, &parent_dir); + if (existing_file.is_valid()) { error = -EEXIST; return nullptr; } @@ -182,7 +182,7 @@ RetainPtr VFS::create(const String& path, int& error, int option return nullptr; } dbgprintf("VFS::create_file: '%s' in %u:%u\n", p.basename().characters(), parent_dir.fsid(), parent_dir.index()); - auto new_file = base.fs()->create_inode(base.fs()->root_inode(), p.basename(), mode, 0, error); + auto new_file = parent_dir.fs()->create_inode(parent_dir, p.basename(), mode, 0, error); if (!new_file) return nullptr;