From 8458313e8a39a6fe67664551d7faaf6dae3eb1f0 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 9 Apr 2022 22:44:01 +0300 Subject: [PATCH] Kernel: Remove big lock from sys$fchown This syscall doesn't access any unprotected shared data. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/chown.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 4fc3c2716b..ded692e127 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -69,7 +69,7 @@ enum class NeedsBigProcessLock { S(exit_thread, NeedsBigProcessLock::Yes) \ S(fchdir, NeedsBigProcessLock::No) \ S(fchmod, NeedsBigProcessLock::No) \ - S(fchown, NeedsBigProcessLock::Yes) \ + S(fchown, NeedsBigProcessLock::No) \ S(fcntl, NeedsBigProcessLock::Yes) \ S(fork, NeedsBigProcessLock::Yes) \ S(fstat, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/chown.cpp b/Kernel/Syscalls/chown.cpp index 797804da87..97ba35a21e 100644 --- a/Kernel/Syscalls/chown.cpp +++ b/Kernel/Syscalls/chown.cpp @@ -13,7 +13,7 @@ namespace Kernel { ErrorOr Process::sys$fchown(int fd, UserID uid, GroupID gid) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::chown)); auto description = TRY(open_file_description(fd)); TRY(description->chown(uid, gid));