Kernel: Mark sys$dup2() 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-08 16:31:45 +01:00
parent 8aad9e7448
commit d074aae422
Notes: sideshowbarker 2024-07-18 01:43:16 +09:00
2 changed files with 2 additions and 2 deletions

View file

@ -62,7 +62,7 @@ enum class NeedsBigProcessLock {
S(detach_thread, NeedsBigProcessLock::Yes) \
S(disown, NeedsBigProcessLock::Yes) \
S(dump_backtrace, NeedsBigProcessLock::No) \
S(dup2, NeedsBigProcessLock::Yes) \
S(dup2, NeedsBigProcessLock::No) \
S(emuctl, NeedsBigProcessLock::Yes) \
S(execve, NeedsBigProcessLock::Yes) \
S(exit, NeedsBigProcessLock::Yes) \

View file

@ -11,7 +11,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$dup2(int old_fd, int new_fd)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio));
return m_fds.with_exclusive([&](auto& fds) -> ErrorOr<FlatPtr> {
auto description = TRY(fds.open_file_description(old_fd));