1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

Kernel: Implement triply indirect block support in Ext2FSInode

This commit is contained in:
Jean-Baptiste Boric 2021-03-11 19:22:13 +01:00 committed by Andreas Kling
parent facd18113b
commit 800dca3834
4 changed files with 276 additions and 148 deletions

View file

@ -81,6 +81,11 @@ private:
KResult write_directory(const Vector<Ext2FSDirectoryEntry>&);
bool populate_lookup_cache() const;
KResult resize(u64);
KResult write_indirect_block(BlockBasedFS::BlockIndex, Span<BlockBasedFS::BlockIndex>);
KResult grow_doubly_indirect_block(BlockBasedFS::BlockIndex, size_t, Span<BlockBasedFS::BlockIndex>, Vector<BlockBasedFS::BlockIndex>&, unsigned&);
KResult shrink_doubly_indirect_block(BlockBasedFS::BlockIndex, size_t, size_t, unsigned&);
KResult grow_triply_indirect_block(BlockBasedFS::BlockIndex, size_t, Span<BlockBasedFS::BlockIndex>, Vector<BlockBasedFS::BlockIndex>&, unsigned&);
KResult shrink_triply_indirect_block(BlockBasedFS::BlockIndex, size_t, size_t, unsigned&);
KResult flush_block_list();
Vector<BlockBasedFS::BlockIndex> compute_block_list() const;
Vector<BlockBasedFS::BlockIndex> compute_block_list_with_meta_blocks() const;