瀏覽代碼

Kernel: Disable big process lock in sys$gethostname() sys$sethostname()

Brian Gianforcaro 4 年之前
父節點
當前提交
10ce896d4f
共有 2 個文件被更改,包括 4 次插入4 次删除
  1. 2 2
      Kernel/API/Syscall.h
  2. 2 2
      Kernel/Syscalls/hostname.cpp

+ 2 - 2
Kernel/API/Syscall.h

@@ -64,8 +64,8 @@ enum class NeedsBigProcessLock {
     S(get_dir_entries, NeedsBigProcessLock::Yes)            \
     S(getcwd, NeedsBigProcessLock::Yes)                     \
     S(gettimeofday, NeedsBigProcessLock::Yes)               \
-    S(gethostname, NeedsBigProcessLock::Yes)                \
-    S(sethostname, NeedsBigProcessLock::Yes)                \
+    S(gethostname, NeedsBigProcessLock::No)                 \
+    S(sethostname, NeedsBigProcessLock::No)                 \
     S(chdir, NeedsBigProcessLock::Yes)                      \
     S(uname, NeedsBigProcessLock::Yes)                      \
     S(set_mmap_name, NeedsBigProcessLock::Yes)              \

+ 2 - 2
Kernel/Syscalls/hostname.cpp

@@ -13,7 +13,7 @@ extern Mutex* g_hostname_lock;
 
 KResultOr<FlatPtr> Process::sys$gethostname(Userspace<char*> buffer, size_t size)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
+    VERIFY_NO_PROCESS_BIG_LOCK(this)
     REQUIRE_PROMISE(stdio);
     if (size > NumericLimits<ssize_t>::max())
         return EINVAL;
@@ -27,7 +27,7 @@ KResultOr<FlatPtr> Process::sys$gethostname(Userspace<char*> buffer, size_t size
 
 KResultOr<FlatPtr> Process::sys$sethostname(Userspace<const char*> hostname, size_t length)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
+    VERIFY_NO_PROCESS_BIG_LOCK(this)
     REQUIRE_NO_PROMISES;
     if (!is_superuser())
         return EPERM;