From 561524d4400aaf16a87ab0cfbf53b68d6d5fd8e3 Mon Sep 17 00:00:00 2001 From: "Enrico Fraccaroli (Galfurian)" Date: Thu, 7 Apr 2022 13:06:07 -0400 Subject: [PATCH] Update inode size when we update its number of blocks in ext2_allocate_inode_block. --- mentos/src/fs/ext2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mentos/src/fs/ext2.c b/mentos/src/fs/ext2.c index 83c0d50..4b2b89a 100644 --- a/mentos/src/fs/ext2.c +++ b/mentos/src/fs/ext2.c @@ -1354,9 +1354,11 @@ static int ext2_allocate_inode_block(ext2_filesystem_t *fs, ext2_inode_t *inode, // Compute the new blocks count. uint32_t blocks_count = (block_index + 1) * fs->blocks_per_block_count; if (inode->blocks_count < blocks_count) { + // Set the blocks count. inode->blocks_count = blocks_count; - pr_debug("Setting the block count for inode to %d = (%d blocks)\n", - blocks_count, blocks_count / fs->blocks_per_block_count); + // Update the size. + inode->size = (blocks_count / fs->blocks_per_block_count) * fs->block_size; + pr_debug("Setting the block count for inode `%d` to `%d` blocks.\n", inode_index, blocks_count / fs->blocks_per_block_count); } // Update the inode. if (ext2_write_inode(fs, inode, inode_index) == -1)