serenity/Kernel/Syscalls
Liav A 4c588441e3 Kernel: Simplify mount syscall flow for regular calls
We do this by putting a distinction between two types of filesystems -
the first type is backed in RAM, and includes TmpFS, ProcFS, SysFS,
DevPtsFS and DevTmpFS. Because these filesystems are backed in RAM,
trying to mount them doesn't require source open file description.
The second type is filesystems that are backed by a file, therefore the
userspace program has to open them (hence it has a open file description
on them) and provide the appropriate source open file description.
By putting this distinction, we can early check if the user tried to
mount the second type of filesystems without a valid file description,
and fail with EBADF then.
Otherwise, we can proceed to either mount either type of filesystem,
provided that the fs_type is valid.
2022-05-29 19:31:02 +01:00
..
access.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
alarm.cpp Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
anon_create.cpp Kernel: Mark sys$anon_create() as not needing the big lock 2022-03-08 00:19:49 +01:00
beep.cpp Kernel: Add CommandLine option to disable or enable the PC speaker 2022-01-23 00:40:54 +00:00
chdir.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
chmod.cpp Kernel: Mark sys$chmod() as not needing the big lock 2022-03-09 16:43:00 +01:00
chown.cpp Kernel: Remove big lock from sys$chown 2022-04-09 23:46:02 +02:00
clock.cpp Kernel: Mark sys$adjtime() as not needing the big lock 2022-04-04 00:42:18 +02:00
debug.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
disown.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
dup2.cpp Kernel: Mark sys$dup2() as not needing the big lock 2022-03-09 16:43:00 +01:00
emuctl.cpp Kernel: Mark sys$emuctl() as not needing the big lock 2022-03-09 16:43:00 +01:00
execve.cpp Kernel: Remove big lock from sys$set_coredump_metadata 2022-04-09 21:51:16 +02:00
exit.cpp Kernel: Fix a few typos 2021-10-01 00:51:49 +01:00
fcntl.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
fork.cpp Kernel: Tweak broken dbgln_if() in sys$fork() after RegionTree changes 2022-04-04 11:05:49 +02:00
fsync.cpp Kernel: Mark sys$fsync() as not needing the big lock 2022-03-08 00:19:49 +01:00
ftruncate.cpp Kernel: Mark sys$ftruncate() as not needing the big lock 2022-03-09 16:43:00 +01:00
futex.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
get_dir_entries.cpp Kernel: Convert process file descriptor table to a SpinlockProtected 2022-01-29 02:17:06 +01:00
get_stack_bounds.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
getrandom.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
getuid.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
hostname.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
inode_watcher.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ioctl.cpp Kernel: Add FIOCLEX and FIONCLEX ioctls 2022-04-26 14:32:12 +02:00
keymap.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kill.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
link.cpp Kernel: Remove big lock from sys$symlink 2022-04-09 23:46:02 +02:00
lseek.cpp Kernel: Mark sys$lseek() as not needing the big lock 2022-03-09 16:43:00 +01:00
mkdir.cpp Kernel: Remove big lock from sys$mkdir 2022-04-09 23:46:02 +02:00
mknod.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
mmap.cpp Kernel: Fix EINVAL when mmaping with address and no MAP_FIXED 2022-05-23 00:13:26 +02:00
mount.cpp Kernel: Simplify mount syscall flow for regular calls 2022-05-29 19:31:02 +01:00
open.cpp Kernel: Don't check pledges or veil against code coverage data files 2022-05-02 01:46:18 +02:00
perf_event.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
pipe.cpp Kernel: Switch process file descriptor table from spinlock to mutex 2022-01-29 02:17:09 +01:00
pledge.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
poll.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
prctl.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
process.cpp Kernel: Remove big lock from sys$set_coredump_metadata 2022-04-09 21:51:16 +02:00
profiling.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ptrace.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
purge.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
read.cpp Kernel: Properly define IOV_MAX 2022-05-05 20:47:38 +02:00
readlink.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
realpath.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
rename.cpp Kernel: Remove big lock from sys$rename 2022-04-09 23:46:02 +02:00
resource.cpp Kernel: Add getrusage() syscall 2022-02-28 20:09:37 +01:00
rmdir.cpp Kernel: Remove big lock from sys$rmdir 2022-04-09 23:46:02 +02:00
sched.cpp Kernel: Mark sys$sched_{set,get}param() as not needing the big lock 2022-04-04 00:42:18 +02:00
sendfd.cpp Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock 2022-04-03 22:06:03 +02:00
setpgid.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
setuid.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
sigaction.cpp Kernel: Remove unused ShouldDeallocateVirtualRange parameters 2022-04-05 01:15:22 +02:00
socket.cpp Kernel: Remove big lock from sys$setsockopt 2022-04-09 23:46:02 +02:00
stat.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
statvfs.cpp Kernel: Remove big lock from sys$statvfs 2022-04-09 23:46:02 +02:00
sync.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
sysconf.cpp Kernel: Expose maximum argument limit in sysconf 2022-02-13 22:06:54 +02:00
thread.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
times.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
umask.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
uname.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
unlink.cpp Kernel+LibC+LibCore: Implement the unlinkat(2) syscall 2022-04-23 10:43:32 -07:00
unveil.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
utime.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
utimensat.cpp Kernel+LibC: Implement futimens(3) 2022-05-21 18:15:00 +02:00
waitid.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
write.cpp Kernel: Properly define IOV_MAX 2022-05-05 20:47:38 +02:00