diff options
author | Andreas Kling <kling@serenityos.org> | 2023-04-02 17:25:09 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-04-04 10:33:42 +0200 |
commit | 673592dea83981bb0829ff14c521a78ebb543e69 (patch) | |
tree | 9c14403c2182e9bdc86abf15fb5555e0f7e1323e /Kernel/FileSystem | |
parent | 3f69ef86c2569e4932055498229bcaeaefd9e6ca (diff) | |
download | serenity-673592dea83981bb0829ff14c521a78ebb543e69.zip |
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.
Diffstat (limited to 'Kernel/FileSystem')
-rw-r--r-- | Kernel/FileSystem/DevPtsFS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/DevPtsFS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/Ext2FS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/Ext2FS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/FATFS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/FATFS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/ISO9660FS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/ISO9660FS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/Mount.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/Mount.h | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/Plan9FS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/Plan9FS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/ProcFS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/ProcFS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/RAMFS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/RAMFS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFS/FileSystem.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFS/FileSystem.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/VirtualFileSystem.cpp | 8 | ||||
-rw-r--r-- | Kernel/FileSystem/VirtualFileSystem.h | 3 |
20 files changed, 33 insertions, 34 deletions
diff --git a/Kernel/FileSystem/DevPtsFS/FileSystem.cpp b/Kernel/FileSystem/DevPtsFS/FileSystem.cpp index c0d64b9440..304f2ae7c3 100644 --- a/Kernel/FileSystem/DevPtsFS/FileSystem.cpp +++ b/Kernel/FileSystem/DevPtsFS/FileSystem.cpp @@ -13,9 +13,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> DevPtsFS::try_create() +ErrorOr<NonnullRefPtr<FileSystem>> DevPtsFS::try_create() { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) DevPtsFS)); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) DevPtsFS)); } DevPtsFS::DevPtsFS() = default; diff --git a/Kernel/FileSystem/DevPtsFS/FileSystem.h b/Kernel/FileSystem/DevPtsFS/FileSystem.h index db9d32cc39..0ee1dcf801 100644 --- a/Kernel/FileSystem/DevPtsFS/FileSystem.h +++ b/Kernel/FileSystem/DevPtsFS/FileSystem.h @@ -20,7 +20,7 @@ class DevPtsFS final : public FileSystem { public: virtual ~DevPtsFS() override; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(); virtual ErrorOr<void> initialize() override; virtual StringView class_name() const override { return "DevPtsFS"sv; } diff --git a/Kernel/FileSystem/Ext2FS/FileSystem.cpp b/Kernel/FileSystem/Ext2FS/FileSystem.cpp index e67ab51e7a..02e56ea5aa 100644 --- a/Kernel/FileSystem/Ext2FS/FileSystem.cpp +++ b/Kernel/FileSystem/Ext2FS/FileSystem.cpp @@ -13,9 +13,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> Ext2FS::try_create(OpenFileDescription& file_description) +ErrorOr<NonnullRefPtr<FileSystem>> Ext2FS::try_create(OpenFileDescription& file_description) { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) Ext2FS(file_description))); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Ext2FS(file_description))); } Ext2FS::Ext2FS(OpenFileDescription& file_description) diff --git a/Kernel/FileSystem/Ext2FS/FileSystem.h b/Kernel/FileSystem/Ext2FS/FileSystem.h index 89d0f10a9f..760c46bcdb 100644 --- a/Kernel/FileSystem/Ext2FS/FileSystem.h +++ b/Kernel/FileSystem/Ext2FS/FileSystem.h @@ -27,7 +27,7 @@ public: FileSize64bits = 1 << 1, }; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(OpenFileDescription&); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(OpenFileDescription&); virtual ~Ext2FS() override; diff --git a/Kernel/FileSystem/FATFS/FileSystem.cpp b/Kernel/FileSystem/FATFS/FileSystem.cpp index 6e35f6aede..728738866f 100644 --- a/Kernel/FileSystem/FATFS/FileSystem.cpp +++ b/Kernel/FileSystem/FATFS/FileSystem.cpp @@ -10,9 +10,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> FATFS::try_create(OpenFileDescription& file_description) +ErrorOr<NonnullRefPtr<FileSystem>> FATFS::try_create(OpenFileDescription& file_description) { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) FATFS(file_description))); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) FATFS(file_description))); } FATFS::FATFS(OpenFileDescription& file_description) diff --git a/Kernel/FileSystem/FATFS/FileSystem.h b/Kernel/FileSystem/FATFS/FileSystem.h index d6972f0154..bedf8a7bc0 100644 --- a/Kernel/FileSystem/FATFS/FileSystem.h +++ b/Kernel/FileSystem/FATFS/FileSystem.h @@ -21,7 +21,7 @@ class FATFS final : public BlockBasedFileSystem { friend FATInode; public: - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(OpenFileDescription&); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(OpenFileDescription&); virtual ~FATFS() override = default; virtual StringView class_name() const override { return "FATFS"sv; } diff --git a/Kernel/FileSystem/ISO9660FS/FileSystem.cpp b/Kernel/FileSystem/ISO9660FS/FileSystem.cpp index 450531b597..c95d35f64f 100644 --- a/Kernel/FileSystem/ISO9660FS/FileSystem.cpp +++ b/Kernel/FileSystem/ISO9660FS/FileSystem.cpp @@ -16,9 +16,9 @@ constexpr u32 first_data_area_block = 16; constexpr u32 logical_sector_size = 2048; constexpr u32 max_cached_directory_entries = 128; -ErrorOr<NonnullLockRefPtr<FileSystem>> ISO9660FS::try_create(OpenFileDescription& description) +ErrorOr<NonnullRefPtr<FileSystem>> ISO9660FS::try_create(OpenFileDescription& description) { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) ISO9660FS(description))); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ISO9660FS(description))); } ISO9660FS::ISO9660FS(OpenFileDescription& description) diff --git a/Kernel/FileSystem/ISO9660FS/FileSystem.h b/Kernel/FileSystem/ISO9660FS/FileSystem.h index 2bb54c5bcb..6a16b4595c 100644 --- a/Kernel/FileSystem/ISO9660FS/FileSystem.h +++ b/Kernel/FileSystem/ISO9660FS/FileSystem.h @@ -29,7 +29,7 @@ class ISO9660FS final : public BlockBasedFileSystem { friend ISO9660DirectoryIterator; public: - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(OpenFileDescription&); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(OpenFileDescription&); virtual ~ISO9660FS() override; virtual StringView class_name() const override { return "ISO9660FS"sv; } diff --git a/Kernel/FileSystem/Mount.cpp b/Kernel/FileSystem/Mount.cpp index a44aebee47..3dbb888477 100644 --- a/Kernel/FileSystem/Mount.cpp +++ b/Kernel/FileSystem/Mount.cpp @@ -11,8 +11,8 @@ namespace Kernel { -Mount::Mount(FileSystem& guest_fs, Custody* host_custody, int flags) - : m_guest(guest_fs.root_inode()) +Mount::Mount(NonnullRefPtr<FileSystem> guest_fs, Custody* host_custody, int flags) + : m_guest(guest_fs->root_inode()) , m_guest_fs(guest_fs) , m_host_custody(host_custody) , m_flags(flags) diff --git a/Kernel/FileSystem/Mount.h b/Kernel/FileSystem/Mount.h index a7c8f45c86..25cb8c1abd 100644 --- a/Kernel/FileSystem/Mount.h +++ b/Kernel/FileSystem/Mount.h @@ -20,7 +20,7 @@ class Mount { friend class VirtualFileSystem; public: - Mount(FileSystem&, Custody* host_custody, int flags); + Mount(NonnullRefPtr<FileSystem>, Custody* host_custody, int flags); Mount(Inode& source, Custody& host_custody, int flags); RefPtr<Inode const> host() const; @@ -39,7 +39,7 @@ public: private: NonnullRefPtr<Inode> m_guest; - NonnullLockRefPtr<FileSystem> m_guest_fs; + NonnullRefPtr<FileSystem> m_guest_fs; SpinlockProtected<RefPtr<Custody>, LockRank::None> m_host_custody; int m_flags; diff --git a/Kernel/FileSystem/Plan9FS/FileSystem.cpp b/Kernel/FileSystem/Plan9FS/FileSystem.cpp index 19d905698d..d2f0b32245 100644 --- a/Kernel/FileSystem/Plan9FS/FileSystem.cpp +++ b/Kernel/FileSystem/Plan9FS/FileSystem.cpp @@ -10,9 +10,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> Plan9FS::try_create(OpenFileDescription& file_description) +ErrorOr<NonnullRefPtr<FileSystem>> Plan9FS::try_create(OpenFileDescription& file_description) { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) Plan9FS(file_description))); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Plan9FS(file_description))); } Plan9FS::Plan9FS(OpenFileDescription& file_description) diff --git a/Kernel/FileSystem/Plan9FS/FileSystem.h b/Kernel/FileSystem/Plan9FS/FileSystem.h index 0bf96da01a..9cbe44fe8e 100644 --- a/Kernel/FileSystem/Plan9FS/FileSystem.h +++ b/Kernel/FileSystem/Plan9FS/FileSystem.h @@ -22,7 +22,7 @@ class Plan9FS final : public FileBackedFileSystem { public: virtual ~Plan9FS() override; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(OpenFileDescription&); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(OpenFileDescription&); virtual bool supports_watchers() const override { return false; } diff --git a/Kernel/FileSystem/ProcFS/FileSystem.cpp b/Kernel/FileSystem/ProcFS/FileSystem.cpp index 970d523c78..59ecafe179 100644 --- a/Kernel/FileSystem/ProcFS/FileSystem.cpp +++ b/Kernel/FileSystem/ProcFS/FileSystem.cpp @@ -11,9 +11,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> ProcFS::try_create() +ErrorOr<NonnullRefPtr<FileSystem>> ProcFS::try_create() { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) ProcFS)); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) ProcFS)); } ProcFS::ProcFS() = default; diff --git a/Kernel/FileSystem/ProcFS/FileSystem.h b/Kernel/FileSystem/ProcFS/FileSystem.h index 6917deb415..38354d0737 100644 --- a/Kernel/FileSystem/ProcFS/FileSystem.h +++ b/Kernel/FileSystem/ProcFS/FileSystem.h @@ -20,7 +20,7 @@ class ProcFS final : public FileSystem { public: virtual ~ProcFS() override; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(); virtual ErrorOr<void> initialize() override; virtual StringView class_name() const override { return "ProcFS"sv; } diff --git a/Kernel/FileSystem/RAMFS/FileSystem.cpp b/Kernel/FileSystem/RAMFS/FileSystem.cpp index ec89fc6ee4..53ae2eab94 100644 --- a/Kernel/FileSystem/RAMFS/FileSystem.cpp +++ b/Kernel/FileSystem/RAMFS/FileSystem.cpp @@ -10,9 +10,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> RAMFS::try_create() +ErrorOr<NonnullRefPtr<FileSystem>> RAMFS::try_create() { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) RAMFS)); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) RAMFS)); } RAMFS::RAMFS() = default; diff --git a/Kernel/FileSystem/RAMFS/FileSystem.h b/Kernel/FileSystem/RAMFS/FileSystem.h index 08273f1e00..a3ba20b1cf 100644 --- a/Kernel/FileSystem/RAMFS/FileSystem.h +++ b/Kernel/FileSystem/RAMFS/FileSystem.h @@ -18,7 +18,7 @@ class RAMFS final : public FileSystem { public: virtual ~RAMFS() override; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(); virtual ErrorOr<void> initialize() override; virtual StringView class_name() const override { return "RAMFS"sv; } diff --git a/Kernel/FileSystem/SysFS/FileSystem.cpp b/Kernel/FileSystem/SysFS/FileSystem.cpp index cbd5dd1275..0e054bddc6 100644 --- a/Kernel/FileSystem/SysFS/FileSystem.cpp +++ b/Kernel/FileSystem/SysFS/FileSystem.cpp @@ -11,9 +11,9 @@ namespace Kernel { -ErrorOr<NonnullLockRefPtr<FileSystem>> SysFS::try_create() +ErrorOr<NonnullRefPtr<FileSystem>> SysFS::try_create() { - return TRY(adopt_nonnull_lock_ref_or_enomem(new (nothrow) SysFS)); + return TRY(adopt_nonnull_ref_or_enomem(new (nothrow) SysFS)); } SysFS::SysFS() = default; diff --git a/Kernel/FileSystem/SysFS/FileSystem.h b/Kernel/FileSystem/SysFS/FileSystem.h index f1669e2287..793c144052 100644 --- a/Kernel/FileSystem/SysFS/FileSystem.h +++ b/Kernel/FileSystem/SysFS/FileSystem.h @@ -20,7 +20,7 @@ class SysFS final : public FileSystem { public: virtual ~SysFS() override; - static ErrorOr<NonnullLockRefPtr<FileSystem>> try_create(); + static ErrorOr<NonnullRefPtr<FileSystem>> try_create(); virtual ErrorOr<void> initialize() override; virtual StringView class_name() const override { return "SysFS"sv; } diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp index 50860954f3..1f9a85ae60 100644 --- a/Kernel/FileSystem/VirtualFileSystem.cpp +++ b/Kernel/FileSystem/VirtualFileSystem.cpp @@ -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; diff --git a/Kernel/FileSystem/VirtualFileSystem.h b/Kernel/FileSystem/VirtualFileSystem.h index 5cf0d622c0..361f7809cf 100644 --- a/Kernel/FileSystem/VirtualFileSystem.h +++ b/Kernel/FileSystem/VirtualFileSystem.h @@ -19,7 +19,6 @@ #include <Kernel/FileSystem/Mount.h> #include <Kernel/FileSystem/UnveilNode.h> #include <Kernel/Forward.h> -#include <Kernel/Library/LockRefPtr.h> #include <Kernel/Locking/SpinlockProtected.h> namespace Kernel { @@ -82,7 +81,7 @@ public: ErrorOr<void> for_each_mount(Function<ErrorOr<void>(Mount const&)>) const; - ErrorOr<NonnullLockRefPtr<FileBackedFileSystem>> find_already_existing_or_create_file_backed_file_system(OpenFileDescription& description, Function<ErrorOr<NonnullLockRefPtr<FileSystem>>(OpenFileDescription&)> callback); + ErrorOr<NonnullRefPtr<FileBackedFileSystem>> find_already_existing_or_create_file_backed_file_system(OpenFileDescription& description, Function<ErrorOr<NonnullRefPtr<FileSystem>>(OpenFileDescription&)> callback); InodeIdentifier root_inode_id() const; |