From 4ae93179f16a31ac44ec817bd57daf6d833fab22 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 9 Apr 2022 23:06:04 +0300 Subject: [PATCH] Kernel: Remove big lock from sys$symlink This syscall doesn't access any unprotected shared data. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/link.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 14093bfd4a..597ff46276 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -176,7 +176,7 @@ enum class NeedsBigProcessLock { S(socketpair, NeedsBigProcessLock::Yes) \ S(stat, NeedsBigProcessLock::No) \ S(statvfs, NeedsBigProcessLock::Yes) \ - S(symlink, NeedsBigProcessLock::Yes) \ + S(symlink, NeedsBigProcessLock::No) \ S(sync, NeedsBigProcessLock::No) \ S(sysconf, NeedsBigProcessLock::No) \ S(times, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/link.cpp b/Kernel/Syscalls/link.cpp index 48a937568c..fea3c69f00 100644 --- a/Kernel/Syscalls/link.cpp +++ b/Kernel/Syscalls/link.cpp @@ -23,7 +23,7 @@ ErrorOr Process::sys$link(Userspace use ErrorOr Process::sys$symlink(Userspace user_params) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this) TRY(require_promise(Pledge::cpath)); auto params = TRY(copy_typed_from_user(user_params));