From 721a867c65435b62d4ba4575156ab5d4ba22af04 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 18 May 2021 21:04:52 +0200 Subject: Kernel: Expose FileSystem's fragment size This commit will add a fragment_size() function similar to the block_size() function. --- Kernel/FileSystem/Ext2FileSystem.cpp | 1 + Kernel/FileSystem/FileSystem.cpp | 8 ++++++++ Kernel/FileSystem/FileSystem.h | 3 +++ 3 files changed, 12 insertions(+) diff --git a/Kernel/FileSystem/Ext2FileSystem.cpp b/Kernel/FileSystem/Ext2FileSystem.cpp index d36b710401..cbd7867621 100644 --- a/Kernel/FileSystem/Ext2FileSystem.cpp +++ b/Kernel/FileSystem/Ext2FileSystem.cpp @@ -114,6 +114,7 @@ bool Ext2FS::initialize() } set_block_size(EXT2_BLOCK_SIZE(&super_block)); + set_fragment_size(EXT2_FRAG_SIZE(&super_block)); VERIFY(block_size() <= (int)max_block_size); diff --git a/Kernel/FileSystem/FileSystem.cpp b/Kernel/FileSystem/FileSystem.cpp index 9ada4d1443..17399b5f3f 100644 --- a/Kernel/FileSystem/FileSystem.cpp +++ b/Kernel/FileSystem/FileSystem.cpp @@ -81,4 +81,12 @@ void FS::set_block_size(size_t block_size) m_block_size = block_size; } +void FS::set_fragment_size(size_t fragment_size) +{ + VERIFY(fragment_size > 0); + if (fragment_size == m_fragment_size) + return; + m_fragment_size = fragment_size; +} + } diff --git a/Kernel/FileSystem/FileSystem.h b/Kernel/FileSystem/FileSystem.h index b2a6eda8ae..a96a8a0698 100644 --- a/Kernel/FileSystem/FileSystem.h +++ b/Kernel/FileSystem/FileSystem.h @@ -61,6 +61,7 @@ public: virtual void flush_writes() { } size_t block_size() const { return m_block_size; } + size_t fragment_size() const { return m_fragment_size; } virtual bool is_file_backed() const { return false; } @@ -71,12 +72,14 @@ protected: FS(); void set_block_size(size_t); + void set_fragment_size(size_t); mutable Lock m_lock { "FS" }; private: unsigned m_fsid { 0 }; size_t m_block_size { 0 }; + size_t m_fragment_size { 0 }; bool m_readonly { false }; }; -- cgit v1.2.3