Kernel: Mark sys$stat() 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 21:33:44 +01:00
parent be7ec52ed0
commit 2688ee28ff
Notes: sideshowbarker 2024-07-17 17:49:06 +09:00
2 changed files with 2 additions and 2 deletions

View File

@ -179,7 +179,7 @@ enum class NeedsBigProcessLock {
S(sigtimedwait, NeedsBigProcessLock::Yes) \
S(socket, NeedsBigProcessLock::Yes) \
S(socketpair, NeedsBigProcessLock::Yes) \
S(stat, NeedsBigProcessLock::Yes) \
S(stat, NeedsBigProcessLock::No) \
S(statvfs, NeedsBigProcessLock::Yes) \
S(symlink, NeedsBigProcessLock::Yes) \
S(sync, NeedsBigProcessLock::No) \

View File

@ -23,7 +23,7 @@ ErrorOr<FlatPtr> Process::sys$fstat(int fd, Userspace<stat*> user_statbuf)
ErrorOr<FlatPtr> Process::sys$stat(Userspace<const Syscall::SC_stat_params*> user_params)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::rpath));
auto params = TRY(copy_typed_from_user(user_params));