1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 18:17:41 +00:00

Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock

These syscalls already perform the necessary locking and don't rely on
the process big lock.
This commit is contained in:
Andreas Kling 2022-04-03 22:06:03 +02:00
parent 92dfcdb6b1
commit bc4282c773
2 changed files with 4 additions and 4 deletions

View file

@ -140,13 +140,13 @@ enum class NeedsBigProcessLock {
S(readlink, NeedsBigProcessLock::No) \ S(readlink, NeedsBigProcessLock::No) \
S(readv, NeedsBigProcessLock::Yes) \ S(readv, NeedsBigProcessLock::Yes) \
S(realpath, NeedsBigProcessLock::No) \ S(realpath, NeedsBigProcessLock::No) \
S(recvfd, NeedsBigProcessLock::Yes) \ S(recvfd, NeedsBigProcessLock::No) \
S(recvmsg, NeedsBigProcessLock::Yes) \ S(recvmsg, NeedsBigProcessLock::Yes) \
S(rename, NeedsBigProcessLock::Yes) \ S(rename, NeedsBigProcessLock::Yes) \
S(rmdir, NeedsBigProcessLock::Yes) \ S(rmdir, NeedsBigProcessLock::Yes) \
S(sched_getparam, NeedsBigProcessLock::Yes) \ S(sched_getparam, NeedsBigProcessLock::Yes) \
S(sched_setparam, NeedsBigProcessLock::Yes) \ S(sched_setparam, NeedsBigProcessLock::Yes) \
S(sendfd, NeedsBigProcessLock::Yes) \ S(sendfd, NeedsBigProcessLock::No) \
S(sendmsg, NeedsBigProcessLock::Yes) \ S(sendmsg, NeedsBigProcessLock::Yes) \
S(set_coredump_metadata, NeedsBigProcessLock::Yes) \ S(set_coredump_metadata, NeedsBigProcessLock::Yes) \
S(set_mmap_name, NeedsBigProcessLock::Yes) \ S(set_mmap_name, NeedsBigProcessLock::Yes) \

View file

@ -12,7 +12,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$sendfd(int sockfd, int fd) ErrorOr<FlatPtr> Process::sys$sendfd(int sockfd, int fd)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) VERIFY_NO_PROCESS_BIG_LOCK(this)
TRY(require_promise(Pledge::sendfd)); TRY(require_promise(Pledge::sendfd));
auto socket_description = TRY(open_file_description(sockfd)); auto socket_description = TRY(open_file_description(sockfd));
if (!socket_description->is_socket()) if (!socket_description->is_socket())
@ -31,7 +31,7 @@ ErrorOr<FlatPtr> Process::sys$sendfd(int sockfd, int fd)
ErrorOr<FlatPtr> Process::sys$recvfd(int sockfd, int options) ErrorOr<FlatPtr> Process::sys$recvfd(int sockfd, int options)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) VERIFY_NO_PROCESS_BIG_LOCK(this)
TRY(require_promise(Pledge::recvfd)); TRY(require_promise(Pledge::recvfd));
auto socket_description = TRY(open_file_description(sockfd)); auto socket_description = TRY(open_file_description(sockfd));
if (!socket_description->is_socket()) if (!socket_description->is_socket())