فهرست منبع

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

Andreas Kling 2 سال پیش
والد
کامیت
ca1f8cac66
2فایلهای تغییر یافته به همراه2 افزوده شده و 2 حذف شده
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/faccessat.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -73,7 +73,7 @@ enum class NeedsBigProcessLock {
     S(execve, NeedsBigProcessLock::Yes)                    \
     S(execve, NeedsBigProcessLock::Yes)                    \
     S(exit, NeedsBigProcessLock::Yes)                      \
     S(exit, NeedsBigProcessLock::Yes)                      \
     S(exit_thread, NeedsBigProcessLock::Yes)               \
     S(exit_thread, NeedsBigProcessLock::Yes)               \
-    S(faccessat, NeedsBigProcessLock::Yes)                 \
+    S(faccessat, NeedsBigProcessLock::No)                  \
     S(fchdir, NeedsBigProcessLock::No)                     \
     S(fchdir, NeedsBigProcessLock::No)                     \
     S(fchmod, NeedsBigProcessLock::No)                     \
     S(fchmod, NeedsBigProcessLock::No)                     \
     S(fchown, NeedsBigProcessLock::No)                     \
     S(fchown, NeedsBigProcessLock::No)                     \

+ 1 - 1
Kernel/Syscalls/faccessat.cpp

@@ -12,7 +12,7 @@ namespace Kernel {
 
 
 ErrorOr<FlatPtr> Process::sys$faccessat(Userspace<Syscall::SC_faccessat_params const*> user_params)
 ErrorOr<FlatPtr> Process::sys$faccessat(Userspace<Syscall::SC_faccessat_params const*> user_params)
 {
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     TRY(require_promise(Pledge::rpath));
     TRY(require_promise(Pledge::rpath));
     auto params = TRY(copy_typed_from_user(user_params));
     auto params = TRY(copy_typed_from_user(user_params));
     auto pathname = TRY(get_syscall_path_argument(params.pathname));
     auto pathname = TRY(get_syscall_path_argument(params.pathname));