Serenity Operating System

Kernel: Make sys$utime() and sys$utimensat() not take the big lock

+4 -4
+2 -2
Kernel/API/Syscall.h
··· 187 187 S(uname, NeedsBigProcessLock::No) \ 188 188 S(unlink, NeedsBigProcessLock::No) \ 189 189 S(unveil, NeedsBigProcessLock::No) \ 190 - S(utime, NeedsBigProcessLock::Yes) \ 191 - S(utimensat, NeedsBigProcessLock::Yes) \ 190 + S(utime, NeedsBigProcessLock::No) \ 191 + S(utimensat, NeedsBigProcessLock::No) \ 192 192 S(waitid, NeedsBigProcessLock::Yes) \ 193 193 S(write, NeedsBigProcessLock::Yes) \ 194 194 S(writev, NeedsBigProcessLock::Yes) \
+1 -1
Kernel/Syscalls/utime.cpp
··· 12 12 13 13 ErrorOr<FlatPtr> Process::sys$utime(Userspace<char const*> user_path, size_t path_length, Userspace<const struct utimbuf*> user_buf) 14 14 { 15 - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); 15 + VERIFY_NO_PROCESS_BIG_LOCK(this); 16 16 TRY(require_promise(Pledge::fattr)); 17 17 auto path = TRY(get_syscall_path_argument(user_path, path_length)); 18 18 utimbuf buf;
+1 -1
Kernel/Syscalls/utimensat.cpp
··· 14 14 15 15 ErrorOr<FlatPtr> Process::sys$utimensat(Userspace<Syscall::SC_utimensat_params const*> user_params) 16 16 { 17 - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); 17 + VERIFY_NO_PROCESS_BIG_LOCK(this); 18 18 TRY(require_promise(Pledge::fattr)); 19 19 20 20 auto params = TRY(copy_typed_from_user(user_params));