From 2112b799864318045e33783709cc3179e6db48e6 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 24 Jan 2021 08:31:18 +0100 Subject: [PATCH] Revert "Kernel: Make VFS::create() fail with EINVAL on invalid file mode" This reverts commit ca3489eec7c1c7910407c4872ed6d70c92ce50cf. Fixes #5087. --- Kernel/FileSystem/VirtualFileSystem.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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();