Explorar el Código

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

This function is already serialized by access to process protected data.
Andreas Kling hace 2 años
padre
commit
e219662ce0
Se han modificado 2 ficheros con 2 adiciones y 2 borrados
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/setpgid.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -165,7 +165,7 @@ enum class NeedsBigProcessLock {
     S(setgroups, NeedsBigProcessLock::No)                  \
     S(sethostname, NeedsBigProcessLock::No)                \
     S(setkeymap, NeedsBigProcessLock::No)                  \
-    S(setpgid, NeedsBigProcessLock::Yes)                   \
+    S(setpgid, NeedsBigProcessLock::No)                    \
     S(setregid, NeedsBigProcessLock::No)                   \
     S(setresgid, NeedsBigProcessLock::No)                  \
     S(setresuid, NeedsBigProcessLock::No)                  \

+ 1 - 1
Kernel/Syscalls/setpgid.cpp

@@ -88,7 +88,7 @@ SessionID Process::get_sid_from_pgid(ProcessGroupID pgid)
 
 ErrorOr<FlatPtr> Process::sys$setpgid(pid_t specified_pid, pid_t specified_pgid)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     TRY(require_promise(Pledge::proc));
     ProcessID pid = specified_pid ? ProcessID(specified_pid) : this->pid();
     if (specified_pgid < 0) {