1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:57:34 +00:00

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

This commit is contained in:
Andreas Kling 2022-08-22 13:37:07 +02:00
parent 280694bb46
commit 930dedfbd8
3 changed files with 4 additions and 4 deletions

View file

@ -187,8 +187,8 @@ enum class NeedsBigProcessLock {
S(uname, NeedsBigProcessLock::No) \ S(uname, NeedsBigProcessLock::No) \
S(unlink, NeedsBigProcessLock::No) \ S(unlink, NeedsBigProcessLock::No) \
S(unveil, NeedsBigProcessLock::No) \ S(unveil, NeedsBigProcessLock::No) \
S(utime, NeedsBigProcessLock::Yes) \ S(utime, NeedsBigProcessLock::No) \
S(utimensat, NeedsBigProcessLock::Yes) \ S(utimensat, NeedsBigProcessLock::No) \
S(waitid, NeedsBigProcessLock::Yes) \ S(waitid, NeedsBigProcessLock::Yes) \
S(write, NeedsBigProcessLock::Yes) \ S(write, NeedsBigProcessLock::Yes) \
S(writev, NeedsBigProcessLock::Yes) \ S(writev, NeedsBigProcessLock::Yes) \

View file

@ -12,7 +12,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$utime(Userspace<char const*> user_path, size_t path_length, Userspace<const struct utimbuf*> user_buf) ErrorOr<FlatPtr> Process::sys$utime(Userspace<char const*> user_path, size_t path_length, Userspace<const struct utimbuf*> user_buf)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::fattr)); TRY(require_promise(Pledge::fattr));
auto path = TRY(get_syscall_path_argument(user_path, path_length)); auto path = TRY(get_syscall_path_argument(user_path, path_length));
utimbuf buf; utimbuf buf;

View file

@ -14,7 +14,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$utimensat(Userspace<Syscall::SC_utimensat_params const*> user_params) ErrorOr<FlatPtr> Process::sys$utimensat(Userspace<Syscall::SC_utimensat_params const*> user_params)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::fattr)); TRY(require_promise(Pledge::fattr));
auto params = TRY(copy_typed_from_user(user_params)); auto params = TRY(copy_typed_from_user(user_params));