From 5f237abc3b4f1f136bae65ade3fe1f9e8e2e8a1d Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 9 May 2026 21:38:18 +0300 Subject: [PATCH] Kernel: Don't lock Ext2FS while reading and writing blocks There is really no reason for this. The underlying block devices are (should be) thread safe themselves --- kernel/kernel/FS/Ext2/FileSystem.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/kernel/kernel/FS/Ext2/FileSystem.cpp b/kernel/kernel/FS/Ext2/FileSystem.cpp index 3ef42e6d..9187f7b9 100644 --- a/kernel/kernel/FS/Ext2/FileSystem.cpp +++ b/kernel/kernel/FS/Ext2/FileSystem.cpp @@ -307,31 +307,27 @@ namespace Kernel BAN::ErrorOr Ext2FS::read_block(uint32_t block, BlockBufferWrapper& buffer) { - LockGuard _(m_mutex); - const uint32_t sector_size = m_block_device->blksize(); const uint32_t block_size = this->block_size(); const uint32_t sectors_per_block = block_size / sector_size; ASSERT(block >= superblock().first_data_block + 1); ASSERT(buffer.size() >= block_size); - TRY(m_block_device->read_blocks(block * sectors_per_block, sectors_per_block, buffer.span())); + TRY(m_block_device->read_blocks(block * sectors_per_block, sectors_per_block, buffer.span())); return {}; } BAN::ErrorOr Ext2FS::write_block(uint32_t block, const BlockBufferWrapper& buffer) { - LockGuard _(m_mutex); - const uint32_t sector_size = m_block_device->blksize(); const uint32_t block_size = this->block_size(); const uint32_t sectors_per_block = block_size / sector_size; ASSERT(block >= superblock().first_data_block + 1); ASSERT(buffer.size() >= block_size); - TRY(m_block_device->write_blocks(block * sectors_per_block, sectors_per_block, buffer.span())); + TRY(m_block_device->write_blocks(block * sectors_per_block, sectors_per_block, buffer.span())); return {}; } @@ -339,8 +335,6 @@ namespace Kernel { auto superblock_buffer = TRY(get_block_buffer()); - LockGuard _(m_mutex); - const uint32_t sector_size = m_block_device->blksize(); ASSERT(1024 % sector_size == 0); @@ -364,8 +358,6 @@ namespace Kernel BAN::ErrorOr Ext2FS::sync_block(uint32_t block) { - LockGuard _(m_mutex); - const uint32_t sector_size = m_block_device->blksize(); const uint32_t block_size = this->block_size(); const uint32_t sectors_per_block = block_size / sector_size;