1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 09:07:41 +00:00
serenity/Userland/Libraries/LibCore
Liav A 23a7ccf607 Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls
This is a preparation before we can create a usable mechanism to use
filesystem-specific mount flags.
To keep some compatibility with userland code, LibC and LibCore mount
functions are kept being usable, but now instead of doing an "atomic"
syscall, they do multiple syscalls to perform the complete procedure of
mounting a filesystem.

The FileBackedFileSystem IntrusiveList in the VFS code is now changed to
be protected by a Mutex, because when we mount a new filesystem, we need
to check if a filesystem is already created for a given source_fd so we
do a scan for that OpenFileDescription in that list. If we fail to find
an already-created filesystem we create a new one and register it in the
list if we successfully mounted it. We use a Mutex because we might need
to initiate disk access during the filesystem creation, which will take
other mutexes in other parts of the kernel, therefore making it not
possible to take a spinlock while doing this.
2023-07-02 01:04:51 +02:00
..
Account.cpp LibCore: Enable modification of a user's supplementary groups 2023-06-26 19:31:09 +02:00
Account.h LibCore: Enable modification of a user's supplementary groups 2023-06-26 19:31:09 +02:00
AnonymousBuffer.cpp LibCore: Convert AnonymousBuffer to use System::anon_create 2022-02-10 21:35:17 +01:00
AnonymousBuffer.h LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
ArgsParser.cpp LibCore: Implement integral ArgsParser positionals through a template 2023-04-30 21:12:46 +03:30
ArgsParser.h LibCore: Implement integral ArgsParser positionals through a template 2023-04-30 21:12:46 +03:30
CMakeLists.txt LibCore: Completely drop IODevice 2023-06-07 12:55:00 +02:00
Command.cpp LibCore: Migrate Command from Deprecated{File,String} 2023-05-19 23:31:20 +02:00
Command.h LibCore: Migrate Command from Deprecated{File,String} 2023-05-19 23:31:20 +02:00
ConfigFile.cpp AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
ConfigFile.h AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
DateTime.cpp LibCore: Add DateTime::to_string() 2023-03-27 20:29:51 +01:00
DateTime.h LibCore: Add DateTime::to_string() 2023-03-27 20:29:51 +01:00
Debounce.h LibCore+Applications: Put timeout parameter first in debounce() 2023-06-14 17:53:59 +02:00
DeferredInvocationContext.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Directory.cpp LibCore: Add wrapper for fstatat() 2023-05-28 05:51:27 -06:00
Directory.h LibCore: Add wrapper for fstatat() 2023-05-28 05:51:27 -06:00
DirectoryEntry.cpp LibCore: Don't use DT_WHT in DirectoryEntry on OpenBSD 2023-03-06 12:53:01 +00:00
DirectoryEntry.h LibCore: Expose file type from DirIterator 2023-03-05 20:23:42 +01:00
DirIterator.cpp LibCore: Don't record false DirIterator errors 2023-05-28 05:51:27 -06:00
DirIterator.h LibCore+Everywhere: Return an Error from DirIterator::error() 2023-03-05 20:23:42 +01:00
ElapsedTimer.cpp Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
ElapsedTimer.h Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
Event.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Event.h LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
EventLoop.cpp LibCore: Cancel jobs on event loop exit 2023-05-17 22:40:15 -06:00
EventLoop.h LibCore: Remove unused cruft in EventLoop.h 2023-04-25 18:01:35 +02:00
EventLoopImplementation.cpp LibCore: Move post_event() back to EventLoopImplementation 2023-04-26 19:17:04 +01:00
EventLoopImplementation.h LibCore: Remove unused EventLoopManager::wake() 2023-04-26 19:17:04 +01:00
EventLoopImplementationUnix.cpp Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
EventLoopImplementationUnix.h Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
File.cpp LibCore: Fix logic deciding when to open files in non-blocking mode 2023-06-07 01:06:44 +02:00
File.h LibCore: Add File::OpenMode::DontCreate 2023-06-03 05:52:16 +02:00
FilePermissionsMask.cpp LibCore: Implement four-digit modes for FilePermissionsMask parsing 2022-07-27 21:45:01 +00:00
FilePermissionsMask.h Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
FileWatcher.h LibCore: Allow subclassing FileWatcher 2023-01-19 11:29:48 +00:00
FileWatcherLinux.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
FileWatcherMacOS.mm AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
FileWatcherSerenity.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
FileWatcherUnimplemented.cpp LibCore+ConfigServer: Add FileWatcherFlags to replace InodeWatcherFlags 2023-01-18 09:37:11 -05:00
Forward.h LibCore: Completely drop IODevice 2023-06-07 12:55:00 +02:00
GetPassword.cpp LibCore: Propagate errors in SecretString 2023-02-08 19:49:48 +01:00
GetPassword.h LibCore: Use ErrorOr<T> for Core::get_password() 2021-11-08 00:35:27 +01:00
Group.cpp LibCore+Utilities: Replace uses of strpbrk with find_any_of() 2023-02-25 22:31:17 +01:00
Group.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LocalServer.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
LocalServer.h LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
LockFile.cpp LibCore+Userland: Remove File::ensure_parent_directories 2022-04-11 00:08:48 +02:00
LockFile.h Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
MappedFile.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
MappedFile.h LibCore: Add MappedFile::map_from_file() 2023-02-16 10:56:01 +00:00
MimeData.cpp LibCore: Support audio file extensions when determining MIME type 2023-06-19 17:42:55 +02:00
MimeData.h LibCore+Userland: Remove uses of DeprecatedString in file utility 2023-06-14 11:18:22 -04:00
NetworkJob.cpp Everywhere: Correctly report progress of downloads larger than 4GiB 2023-06-19 06:13:19 +02:00
NetworkJob.h Everywhere: Correctly report progress of downloads larger than 4GiB 2023-06-19 06:13:19 +02:00
NetworkResponse.h Libraries: Use default constructors/destructors in LibCore 2022-03-10 18:04:26 -08:00
Notifier.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
Notifier.h LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
Object.cpp LibCore: Big first step towards pluggable Core::EventLoop 2023-04-25 14:48:40 +02:00
Object.h LibCore: Use StringView in Object::find_{child,descendant}_of_type_named 2023-05-15 06:39:22 +02:00
Process.cpp LibCore: Get the environment in Core::Process::spawn() on macOS 2023-03-24 22:06:38 +00:00
Process.h LibCore: Add KeepAsChild option to Core::Process::spawn() 2023-03-24 22:06:38 +00:00
ProcessStatisticsReader.cpp Kernel+LibCore+SystemMonitor: Make thread statistics values 64-bit 2023-06-11 09:26:54 +01:00
ProcessStatisticsReader.h Kernel+LibCore+SystemMonitor: Make thread statistics values 64-bit 2023-06-11 09:26:54 +01:00
Promise.h LibCore+Userland: Make Promise's on_resolve fallible 2023-03-13 12:12:17 +00:00
Property.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Property.h LibCore: Support write-only Object properties 2022-12-09 00:05:30 +01:00
Proxy.h LibIPC+Everywhere: Change IPC::encode's return type to ErrorOr 2023-01-04 11:49:15 +01:00
SecretString.cpp LibCore: Propagate errors in SecretString 2023-02-08 19:49:48 +01:00
SecretString.h LibCore: Use AK_MAKE_DEFAULT_MOVABLE to avoid mistakes in default impls 2023-06-18 08:47:51 +01:00
SessionManagement.cpp Kernel+LibCore: Make %sid path parsing not take ages 2023-01-10 19:32:31 +01:00
SessionManagement.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SharedCircularQueue.h LibCore: Remove try_ prefix from fallible SharedCircularQueue methods 2023-01-28 22:41:36 +01:00
Socket.cpp AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
Socket.h AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
SocketAddress.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
SOCKSProxyClient.cpp LibCore: Use length-checking stream reads and writes for SOCKS5 2023-03-13 15:16:20 +00:00
SOCKSProxyClient.h AK: Rename Stream::{read,write} to Stream::{read_some,write_some} 2023-03-13 15:16:20 +00:00
StandardPaths.cpp Everywhere: Use _{short_,}string to create Strings from literals 2023-02-25 20:51:49 +01:00
StandardPaths.h LibCore: Add StandardPaths::font_directories() 2023-01-11 20:54:49 +00:00
System.cpp Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
System.h Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
SystemServerTakeover.cpp LibCore: Move Stream-based sockets into the Core namespace 2023-02-13 00:50:07 +00:00
SystemServerTakeover.h LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
TCPServer.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
TCPServer.h LibCore: Remove Stream.h 2023-02-13 00:50:07 +00:00
ThreadEventQueue.cpp LibCore: Use AK_MAKE_DEFAULT_MOVABLE to avoid mistakes in default impls 2023-06-18 08:47:51 +01:00
ThreadEventQueue.h LibCore: Cancel jobs on event loop exit 2023-05-17 22:40:15 -06:00
Timer.cpp LibCore+Userland: Don't auto-start new Core::Timers 2023-01-12 11:25:51 +01:00
Timer.h LibCore+Userland: Don't auto-start new Core::Timers 2023-01-12 11:25:51 +01:00
UDPServer.cpp LibCore: Simplify Core::Notifier by only allowing one event type 2023-04-25 14:48:40 +02:00
UDPServer.h LibCore: Make UDPServer::receive() return ErrorOr<ByteBuffer> 2022-12-20 10:45:20 +01:00
UmaskScope.h Everywhere: Fix order of includes and #pragma once 2022-09-18 18:30:05 -07:00
Version.cpp LibCore+LibGUI+About: Use String in Core::Version and GUI::AboutDialog 2023-03-03 15:23:47 +01:00
Version.h LibCore+LibGUI+About: Use String in Core::Version and GUI::AboutDialog 2023-03-03 15:23:47 +01:00