From 165a23b68c9b737ef039c8bab9ba77712ab2b259 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 9 Apr 2022 23:08:46 +0300 Subject: [PATCH] Kernel: Remove big lock from sys$rename This syscall doesn't access any unprotected shared data. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/rename.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index cb91e67441..e996483b92 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -142,7 +142,7 @@ enum class NeedsBigProcessLock { S(realpath, NeedsBigProcessLock::No) \ S(recvfd, NeedsBigProcessLock::No) \ S(recvmsg, NeedsBigProcessLock::Yes) \ - S(rename, NeedsBigProcessLock::Yes) \ + S(rename, NeedsBigProcessLock::No) \ S(rmdir, NeedsBigProcessLock::No) \ S(sched_getparam, NeedsBigProcessLock::No) \ S(sched_setparam, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/rename.cpp b/Kernel/Syscalls/rename.cpp index edbf69160e..d1ff77672f 100644 --- a/Kernel/Syscalls/rename.cpp +++ b/Kernel/Syscalls/rename.cpp @@ -12,7 +12,7 @@ namespace Kernel { ErrorOr Process::sys$rename(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)); auto old_path = TRY(get_syscall_path_argument(params.old_path));