فهرست منبع

Kernel: Mark sys$umask as not needing the big lock

The body of this syscall is already serialized by calling
with_mutable_protected_data().
Andreas Kling 2 سال پیش
والد
کامیت
d8bb32117e
2فایلهای تغییر یافته به همراه2 افزوده شده و 2 حذف شده
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/umask.cpp

+ 1 - 1
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)                      \

+ 1 - 1
Kernel/Syscalls/umask.cpp

@@ -10,7 +10,7 @@ namespace Kernel {
 
 ErrorOr<FlatPtr> 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<FlatPtr> {
         auto old_mask = protected_data.umask;