diff options
-rw-r--r-- | Kernel/FileSystem/Ext2FileSystem.cpp | 6 | ||||
-rw-r--r-- | Kernel/FileSystem/Ext2FileSystem.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/Kernel/FileSystem/Ext2FileSystem.cpp b/Kernel/FileSystem/Ext2FileSystem.cpp index b2f90f85ac..48aa3b4cdd 100644 --- a/Kernel/FileSystem/Ext2FileSystem.cpp +++ b/Kernel/FileSystem/Ext2FileSystem.cpp @@ -1499,9 +1499,9 @@ ErrorOr<NonnullLockRefPtr<Inode>> Ext2FS::create_inode(Ext2FSInode& parent_inode return new_inode; } -ErrorOr<void> Ext2FSInode::populate_lookup_cache() const +ErrorOr<void> Ext2FSInode::populate_lookup_cache() { - MutexLocker locker(m_inode_lock); + VERIFY(m_inode_lock.is_exclusively_locked_by_current_thread()); if (!m_lookup_cache.is_empty()) return {}; HashMap<NonnullOwnPtr<KString>, InodeIndex> children; @@ -1521,11 +1521,11 @@ ErrorOr<NonnullLockRefPtr<Inode>> Ext2FSInode::lookup(StringView name) { VERIFY(is_directory()); dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]:lookup(): Looking up '{}'", identifier(), name); - TRY(populate_lookup_cache()); InodeIndex inode_index; { MutexLocker locker(m_inode_lock); + TRY(populate_lookup_cache()); auto it = m_lookup_cache.find(name); if (it == m_lookup_cache.end()) { dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]:lookup(): '{}' not found", identifier(), name); diff --git a/Kernel/FileSystem/Ext2FileSystem.h b/Kernel/FileSystem/Ext2FileSystem.h index e9b7de9fbd..8441fc70a3 100644 --- a/Kernel/FileSystem/Ext2FileSystem.h +++ b/Kernel/FileSystem/Ext2FileSystem.h @@ -53,7 +53,7 @@ private: virtual ErrorOr<int> get_block_address(int) override; ErrorOr<void> write_directory(Vector<Ext2FSDirectoryEntry>&); - ErrorOr<void> populate_lookup_cache() const; + ErrorOr<void> populate_lookup_cache(); ErrorOr<void> resize(u64); ErrorOr<void> write_indirect_block(BlockBasedFileSystem::BlockIndex, Span<BlockBasedFileSystem::BlockIndex>); ErrorOr<void> grow_doubly_indirect_block(BlockBasedFileSystem::BlockIndex, size_t, Span<BlockBasedFileSystem::BlockIndex>, Vector<BlockBasedFileSystem::BlockIndex>&, unsigned&); @@ -71,7 +71,7 @@ private: Ext2FSInode(Ext2FS&, InodeIndex); mutable Vector<BlockBasedFileSystem::BlockIndex> m_block_list; - mutable HashMap<NonnullOwnPtr<KString>, InodeIndex> m_lookup_cache; + HashMap<NonnullOwnPtr<KString>, InodeIndex> m_lookup_cache; ext2_inode m_raw_inode {}; }; |