From 2ddd69260ca7a4ab62cbed3a5fd4000e49e733bd Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 3 Apr 2023 13:33:04 +0200 Subject: [PATCH] Kernel: Mark sys$getpgid as not needing the big lock Access to the process's process group is already serialized by SpinlockProtected. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/setpgid.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 0ea820c6d9..9da9230427 100644 --- a/Kernel/API/Syscall.h +++ b/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) \ diff --git a/Kernel/Syscalls/setpgid.cpp b/Kernel/Syscalls/setpgid.cpp index 96b5da049a..738f78e508 100644 --- a/Kernel/Syscalls/setpgid.cpp +++ b/Kernel/Syscalls/setpgid.cpp @@ -49,7 +49,7 @@ ErrorOr Process::sys$setsid() ErrorOr 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();