diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp index aa7b94571a..25029dc021 100644 --- a/Kernel/FileSystem/VirtualFileSystem.cpp +++ b/Kernel/FileSystem/VirtualFileSystem.cpp @@ -389,8 +389,10 @@ KResultOr> VFS::create(StringView path, int optio if (result.is_error()) return result; - if (!is_regular_file(mode) && !is_socket(mode) && !is_fifo(mode) && !is_block_device(mode) && !is_character_device(mode)) - return EINVAL; + if (!is_socket(mode) && !is_fifo(mode) && !is_block_device(mode) && !is_character_device(mode)) { + // Turn it into a regular file. (This feels rather hackish.) + mode |= 0100000; + } auto& parent_inode = parent_custody.inode(); auto current_process = Process::current();