From 7b3642d08c11db7b02f205a8b649b5ffcc609bf2 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 8 Mar 2022 16:39:58 +0100 Subject: [PATCH] Kernel: Mark sys$lseek() as not needing the big lock This syscall doesn't access any data that was implicitly protected by the big lock. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/lseek.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 5a95696a72..ab809805a4 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -111,7 +111,7 @@ enum class NeedsBigProcessLock { S(killpg, NeedsBigProcessLock::Yes) \ S(link, NeedsBigProcessLock::Yes) \ S(listen, NeedsBigProcessLock::Yes) \ - S(lseek, NeedsBigProcessLock::Yes) \ + S(lseek, NeedsBigProcessLock::No) \ S(madvise, NeedsBigProcessLock::Yes) \ S(map_time_page, NeedsBigProcessLock::Yes) \ S(mkdir, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/lseek.cpp b/Kernel/Syscalls/lseek.cpp index 2422dce950..52e15bef50 100644 --- a/Kernel/Syscalls/lseek.cpp +++ b/Kernel/Syscalls/lseek.cpp @@ -11,7 +11,7 @@ namespace Kernel { ErrorOr Process::sys$lseek(int fd, Userspace userspace_offset, int whence) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::stdio)); auto description = TRY(open_file_description(fd)); off_t offset;