Prechádzať zdrojové kódy

Kernel: Mark sys$umount as not needing the big lock

All accesses to the mount table are already serialized by the actual
spinlock of that table.
Liav A 2 rokov pred
rodič
commit
0be79f9bc2
2 zmenil súbory, kde vykonal 2 pridanie a 2 odobranie
  1. 1 1
      Kernel/API/Syscall.h
  2. 1 1
      Kernel/Syscalls/mount.cpp

+ 1 - 1
Kernel/API/Syscall.h

@@ -193,7 +193,7 @@ enum class NeedsBigProcessLock {
     S(sysconf, NeedsBigProcessLock::No)                    \
     S(times, NeedsBigProcessLock::No)                      \
     S(umask, NeedsBigProcessLock::No)                      \
-    S(umount, NeedsBigProcessLock::Yes)                    \
+    S(umount, NeedsBigProcessLock::No)                     \
     S(uname, NeedsBigProcessLock::No)                      \
     S(unlink, NeedsBigProcessLock::No)                     \
     S(unveil, NeedsBigProcessLock::No)                     \

+ 1 - 1
Kernel/Syscalls/mount.cpp

@@ -161,7 +161,7 @@ ErrorOr<FlatPtr> Process::sys$bindmount(Userspace<Syscall::SC_bindmount_params c
 
 ErrorOr<FlatPtr> Process::sys$umount(Userspace<char const*> user_mountpoint, size_t mountpoint_length)
 {
-    VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+    VERIFY_NO_PROCESS_BIG_LOCK(this);
     auto credentials = this->credentials();
     if (!credentials->is_superuser())
         return EPERM;