From d8bb32117e9688cb54e6ba9f5a3703a900ccfe4b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 3 Apr 2023 16:37:34 +0200 Subject: [PATCH] Kernel: Mark sys$umask as not needing the big lock The body of this syscall is already serialized by calling with_mutable_protected_data(). --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/umask.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 20887f17c0..307915b575 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -189,7 +189,7 @@ enum class NeedsBigProcessLock { S(sync, NeedsBigProcessLock::No) \ S(sysconf, NeedsBigProcessLock::No) \ S(times, NeedsBigProcessLock::Yes) \ - S(umask, NeedsBigProcessLock::Yes) \ + S(umask, NeedsBigProcessLock::No) \ S(umount, NeedsBigProcessLock::Yes) \ S(uname, NeedsBigProcessLock::No) \ S(unlink, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/umask.cpp b/Kernel/Syscalls/umask.cpp index d7031c0568..dc610e4c4d 100644 --- a/Kernel/Syscalls/umask.cpp +++ b/Kernel/Syscalls/umask.cpp @@ -10,7 +10,7 @@ namespace Kernel { ErrorOr Process::sys$umask(mode_t mask) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::stdio)); return with_mutable_protected_data([&](auto& protected_data) -> ErrorOr { auto old_mask = protected_data.umask;