Kernel: Mark sys$realpath() as not needing the big lock

This syscall doesn't access any data that was implicitly protected by
the big lock.
This commit is contained in:
Andreas Kling 2022-03-07 17:44:27 +01:00
commit f630d0f095
Notes: sideshowbarker 2024-07-17 17:49:20 +09:00
2 changed files with 2 additions and 2 deletions

View file

@ -144,7 +144,7 @@ enum class NeedsBigProcessLock {
S(pread, NeedsBigProcessLock::Yes) \ S(pread, NeedsBigProcessLock::Yes) \
S(readlink, NeedsBigProcessLock::Yes) \ S(readlink, NeedsBigProcessLock::Yes) \
S(readv, NeedsBigProcessLock::Yes) \ S(readv, NeedsBigProcessLock::Yes) \
S(realpath, NeedsBigProcessLock::Yes) \ S(realpath, NeedsBigProcessLock::No) \
S(recvfd, NeedsBigProcessLock::Yes) \ S(recvfd, NeedsBigProcessLock::Yes) \
S(recvmsg, NeedsBigProcessLock::Yes) \ S(recvmsg, NeedsBigProcessLock::Yes) \
S(rename, NeedsBigProcessLock::Yes) \ S(rename, NeedsBigProcessLock::Yes) \

View file

@ -13,7 +13,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$realpath(Userspace<const Syscall::SC_realpath_params*> user_params) ErrorOr<FlatPtr> Process::sys$realpath(Userspace<const Syscall::SC_realpath_params*> 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));