Kernel: Stop using *LockRefPtr for FileSystem pointers

There was only one permanent storage location for these: as a member
in the Mount class.

That member is never modified after Mount initialization, so we don't
need to worry about races there.
This commit is contained in:
Andreas Kling 2023-04-02 17:25:09 +02:00
parent 3f69ef86c2
commit 673592dea8
Notes: sideshowbarker 2024-07-17 08:45:34 +09:00
23 changed files with 40 additions and 41 deletions

View file

@ -135,7 +135,7 @@ ErrorOr<void> VirtualFileSystem::remount(Custody& mount_point, int new_flags)
void VirtualFileSystem::sync_filesystems()
{
Vector<NonnullLockRefPtr<FileSystem>, 32> file_systems;
Vector<NonnullRefPtr<FileSystem>, 32> file_systems;
m_file_systems_list.with([&](auto const& list) {
for (auto& fs : list)
file_systems.append(fs);
@ -147,7 +147,7 @@ void VirtualFileSystem::sync_filesystems()
void VirtualFileSystem::lock_all_filesystems()
{
Vector<NonnullLockRefPtr<FileSystem>, 32> file_systems;
Vector<NonnullRefPtr<FileSystem>, 32> file_systems;
m_file_systems_list.with([&](auto const& list) {
for (auto& fs : list)
file_systems.append(fs);
@ -334,9 +334,9 @@ ErrorOr<InodeMetadata> VirtualFileSystem::lookup_metadata(Credentials const& cre
return custody->inode().metadata();
}
ErrorOr<NonnullLockRefPtr<FileBackedFileSystem>> VirtualFileSystem::find_already_existing_or_create_file_backed_file_system(OpenFileDescription& description, Function<ErrorOr<NonnullLockRefPtr<FileSystem>>(OpenFileDescription&)> callback)
ErrorOr<NonnullRefPtr<FileBackedFileSystem>> VirtualFileSystem::find_already_existing_or_create_file_backed_file_system(OpenFileDescription& description, Function<ErrorOr<NonnullRefPtr<FileSystem>>(OpenFileDescription&)> callback)
{
return TRY(m_file_backed_file_systems_list.with([&](auto& list) -> ErrorOr<NonnullLockRefPtr<FileBackedFileSystem>> {
return TRY(m_file_backed_file_systems_list.with([&](auto& list) -> ErrorOr<NonnullRefPtr<FileBackedFileSystem>> {
for (auto& node : list) {
if (&node.file_description() == &description) {
return node;