mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 14:07:45 +00:00
Kernel: Mark inode watcher syscalls as not needing the big lock
These syscalls are already protected by existing locking mechanisms, including the mutex inside InodeWatcher.
This commit is contained in:
parent
08d79c757a
commit
bd46397e1f
2 changed files with 157 additions and 157 deletions
|
@ -109,8 +109,8 @@ enum class NeedsBigProcessLock {
|
||||||
S(getsockopt, NeedsBigProcessLock::No) \
|
S(getsockopt, NeedsBigProcessLock::No) \
|
||||||
S(gettid, NeedsBigProcessLock::No) \
|
S(gettid, NeedsBigProcessLock::No) \
|
||||||
S(getuid, NeedsBigProcessLock::No) \
|
S(getuid, NeedsBigProcessLock::No) \
|
||||||
S(inode_watcher_add_watch, NeedsBigProcessLock::Yes) \
|
S(inode_watcher_add_watch, NeedsBigProcessLock::No) \
|
||||||
S(inode_watcher_remove_watch, NeedsBigProcessLock::Yes) \
|
S(inode_watcher_remove_watch, NeedsBigProcessLock::No) \
|
||||||
S(ioctl, NeedsBigProcessLock::Yes) \
|
S(ioctl, NeedsBigProcessLock::Yes) \
|
||||||
S(join_thread, NeedsBigProcessLock::Yes) \
|
S(join_thread, NeedsBigProcessLock::Yes) \
|
||||||
S(jail_create, NeedsBigProcessLock::No) \
|
S(jail_create, NeedsBigProcessLock::No) \
|
||||||
|
|
|
@ -39,7 +39,7 @@ ErrorOr<FlatPtr> Process::sys$create_inode_watcher(u32 flags)
|
||||||
|
|
||||||
ErrorOr<FlatPtr> Process::sys$inode_watcher_add_watch(Userspace<Syscall::SC_inode_watcher_add_watch_params const*> user_params)
|
ErrorOr<FlatPtr> Process::sys$inode_watcher_add_watch(Userspace<Syscall::SC_inode_watcher_add_watch_params const*> user_params)
|
||||||
{
|
{
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
VERIFY_NO_PROCESS_BIG_LOCK(this);
|
||||||
TRY(require_promise(Pledge::rpath));
|
TRY(require_promise(Pledge::rpath));
|
||||||
auto params = TRY(copy_typed_from_user(user_params));
|
auto params = TRY(copy_typed_from_user(user_params));
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ ErrorOr<FlatPtr> Process::sys$inode_watcher_add_watch(Userspace<Syscall::SC_inod
|
||||||
|
|
||||||
ErrorOr<FlatPtr> Process::sys$inode_watcher_remove_watch(int fd, int wd)
|
ErrorOr<FlatPtr> Process::sys$inode_watcher_remove_watch(int fd, int wd)
|
||||||
{
|
{
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
VERIFY_NO_PROCESS_BIG_LOCK(this);
|
||||||
auto description = TRY(open_file_description(fd));
|
auto description = TRY(open_file_description(fd));
|
||||||
if (!description->is_inode_watcher())
|
if (!description->is_inode_watcher())
|
||||||
return EBADF;
|
return EBADF;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue