Kernel: Mark sys$fork as not needing the big lock

All shared structures are already protected by "atomic" spinlocks for
those structures, so there's no need to take the big process lock.
This commit is contained in:
Liav A 2023-05-26 14:02:15 +03:00 committed by Andreas Kling
commit 46ef2f8e20
Notes: sideshowbarker 2024-07-16 22:14:49 +09:00
2 changed files with 2 additions and 2 deletions

View file

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

View file

@ -17,7 +17,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$fork(RegisterState& regs)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::proc));
auto child_name = TRY(name().with([](auto& name) { return name->try_clone(); }));