1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:37:43 +00:00

Kernel: Mark sys$getcwd() 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:57:55 +01:00
parent f630d0f095
commit 7597bef771
2 changed files with 2 additions and 2 deletions

View file

@ -85,7 +85,7 @@ enum class NeedsBigProcessLock {
S(get_process_name, NeedsBigProcessLock::Yes) \ S(get_process_name, NeedsBigProcessLock::Yes) \
S(get_stack_bounds, NeedsBigProcessLock::No) \ S(get_stack_bounds, NeedsBigProcessLock::No) \
S(get_thread_name, NeedsBigProcessLock::Yes) \ S(get_thread_name, NeedsBigProcessLock::Yes) \
S(getcwd, NeedsBigProcessLock::Yes) \ S(getcwd, NeedsBigProcessLock::No) \
S(getegid, NeedsBigProcessLock::Yes) \ S(getegid, NeedsBigProcessLock::Yes) \
S(geteuid, NeedsBigProcessLock::Yes) \ S(geteuid, NeedsBigProcessLock::Yes) \
S(getgid, NeedsBigProcessLock::Yes) \ S(getgid, NeedsBigProcessLock::Yes) \

View file

@ -38,7 +38,7 @@ ErrorOr<FlatPtr> Process::sys$fchdir(int fd)
ErrorOr<FlatPtr> Process::sys$getcwd(Userspace<char*> buffer, size_t size) ErrorOr<FlatPtr> Process::sys$getcwd(Userspace<char*> buffer, size_t size)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::rpath)); TRY(require_promise(Pledge::rpath));
if (size > NumericLimits<ssize_t>::max()) if (size > NumericLimits<ssize_t>::max())