Переглянути джерело

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

Access to the process's process group is already serialized by
SpinlockProtected.
Andreas Kling 2 роки тому
батько
коміт
2ddd69260c
2 змінених файлів з 2 додано та 2 видалено
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/setpgid.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -96,7 +96,7 @@ enum class NeedsBigProcessLock {
     S(gethostname, NeedsBigProcessLock::No)                 \
     S(getkeymap, NeedsBigProcessLock::No)                   \
     S(getpeername, NeedsBigProcessLock::Yes)                \
-    S(getpgid, NeedsBigProcessLock::Yes)                    \
+    S(getpgid, NeedsBigProcessLock::No)                     \
     S(getpgrp, NeedsBigProcessLock::Yes)                    \
     S(getpid, NeedsBigProcessLock::No)                      \
     S(getppid, NeedsBigProcessLock::No)                     \

+ 1 - 1
Kernel/Syscalls/setpgid.cpp

@@ -49,7 +49,7 @@ ErrorOr<FlatPtr> Process::sys$setsid()
 
 ErrorOr<FlatPtr> Process::sys$getpgid(pid_t pid)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     TRY(require_promise(Pledge::stdio));
     if (pid == 0)
         return pgid().value();