From fa360f7d88b25f8ba83a726ac4e435a905fd4f78 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 9 Apr 2022 23:03:24 +0300 Subject: [PATCH] Kernel: Remove big lock from sys$unlink This syscall doesn't access any unprotected shared data. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/unlink.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 041f195eae..b6150dea75 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -183,7 +183,7 @@ enum class NeedsBigProcessLock { S(umask, NeedsBigProcessLock::Yes) \ S(umount, NeedsBigProcessLock::Yes) \ S(uname, NeedsBigProcessLock::No) \ - S(unlink, NeedsBigProcessLock::Yes) \ + S(unlink, NeedsBigProcessLock::No) \ S(unveil, NeedsBigProcessLock::Yes) \ S(utime, NeedsBigProcessLock::Yes) \ S(waitid, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/unlink.cpp b/Kernel/Syscalls/unlink.cpp index 8d39f9ed6a..80c89518db 100644 --- a/Kernel/Syscalls/unlink.cpp +++ b/Kernel/Syscalls/unlink.cpp @@ -12,7 +12,7 @@ namespace Kernel { ErrorOr Process::sys$unlink(Userspace user_path, size_t path_length) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this) TRY(require_promise(Pledge::cpath)); auto path = TRY(get_syscall_path_argument(user_path, path_length)); TRY(VirtualFileSystem::the().unlink(path->view(), current_directory()));