diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index cf53d789f9..dd88bddd83 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -92,7 +92,7 @@ enum class NeedsBigProcessLock { S(getpgid, NeedsBigProcessLock::Yes) \ S(getpgrp, NeedsBigProcessLock::Yes) \ S(getpid, NeedsBigProcessLock::No) \ - S(getppid, NeedsBigProcessLock::Yes) \ + S(getppid, NeedsBigProcessLock::No) \ S(getrandom, NeedsBigProcessLock::No) \ S(getresgid, NeedsBigProcessLock::No) \ S(getresuid, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/process.cpp b/Kernel/Syscalls/process.cpp index 338e05b413..612e8d8e67 100644 --- a/Kernel/Syscalls/process.cpp +++ b/Kernel/Syscalls/process.cpp @@ -18,9 +18,9 @@ ErrorOr Process::sys$getpid() ErrorOr Process::sys$getppid() { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::stdio)); - return with_protected_data([](auto& protected_data) { return protected_data.ppid.value(); }); + return ppid().value(); } ErrorOr Process::sys$get_process_name(Userspace buffer, size_t buffer_size)