diff --git a/Kernel/FileSystem/Ext2FileSystem.cpp b/Kernel/FileSystem/Ext2FileSystem.cpp index 4fcca1d199..c9247eb731 100644 --- a/Kernel/FileSystem/Ext2FileSystem.cpp +++ b/Kernel/FileSystem/Ext2FileSystem.cpp @@ -543,8 +543,10 @@ void Ext2FS::free_inode(Ext2FSInode& inode) dbgln_if(EXT2_DEBUG, "Ext2FS: Inode {} has no more links, time to delete!", inode.index()); // Mark all blocks used by this inode as free. - auto block_list = block_list_for_inode(inode.m_raw_inode, true); - for (auto block_index : block_list) { + if (inode.m_block_list.is_empty()) + inode.m_block_list = block_list_for_inode(inode.m_raw_inode, true); + + for (auto block_index : inode.m_block_list) { VERIFY(block_index <= super_block().s_blocks_count); if (block_index.value()) { auto result = set_block_allocation_state(block_index, false);