Kernel: Mark sys$fstat() 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:32:25 +01:00
parent 23822febd2
commit be7ec52ed0
Notes: sideshowbarker 2024-07-17 17:49:09 +09:00
2 changed files with 2 additions and 2 deletions

View file

@ -76,7 +76,7 @@ enum class NeedsBigProcessLock {
S(fchown, NeedsBigProcessLock::Yes) \ S(fchown, NeedsBigProcessLock::Yes) \
S(fcntl, NeedsBigProcessLock::Yes) \ S(fcntl, NeedsBigProcessLock::Yes) \
S(fork, NeedsBigProcessLock::Yes) \ S(fork, NeedsBigProcessLock::Yes) \
S(fstat, NeedsBigProcessLock::Yes) \ S(fstat, NeedsBigProcessLock::No) \
S(fstatvfs, NeedsBigProcessLock::Yes) \ S(fstatvfs, NeedsBigProcessLock::Yes) \
S(fsync, NeedsBigProcessLock::Yes) \ S(fsync, NeedsBigProcessLock::Yes) \
S(ftruncate, NeedsBigProcessLock::Yes) \ S(ftruncate, NeedsBigProcessLock::Yes) \

View file

@ -13,7 +13,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$fstat(int fd, Userspace<stat*> user_statbuf) ErrorOr<FlatPtr> Process::sys$fstat(int fd, Userspace<stat*> user_statbuf)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio)); TRY(require_promise(Pledge::stdio));
auto description = TRY(open_file_description(fd)); auto description = TRY(open_file_description(fd));
auto buffer = TRY(description->stat()); auto buffer = TRY(description->stat());