From 14148e4d8071880ec8b2e484b3f135b45ceba020 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 15 Feb 2005 22:00:00 -0500 Subject: [PATCH] Import backup from 2005-02-15 --- kernel/fs/ext2.c | 13 +++++++++++++ kernel/fs/ext2.h | 1 + kernel/kernel.c | 1 - 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/kernel/fs/ext2.c b/kernel/fs/ext2.c index 76b72cd..d9db7ff 100644 --- a/kernel/fs/ext2.c +++ b/kernel/fs/ext2.c @@ -370,6 +370,19 @@ u32_t ext2_alloc_block(vfs_mount_t *mount) return 0; } +int ext2_resize_inode(vfs_mount_t *mount, u32_t inode_number, u32_t new_size) +{ + ext2_inode_t inode; + if ( ext2_read_inode(mount, inode_number, &inode) ) + return -1; + ext2_super_block_t *super = mount->super; + int current_blocks = (inode.i_size + (1024 << super->s_log_block_size) - 1) >> (10 + super->s_log_block_size); + int new_blocks = (new_size + (1024 << super->s_log_block_size) - 1) >> (10 + super->s_log_block_size); + if ( num_blocks == current_size ) + return 0; + +} + // reserve a node of a inode or block bitmap and mark its entry allocated u32_t ext2_reserve_node(vfs_mount_t *mount, u32_t bitmap_block_num, u32_t bitmap_size) { diff --git a/kernel/fs/ext2.h b/kernel/fs/ext2.h index a9dce89..104556d 100644 --- a/kernel/fs/ext2.h +++ b/kernel/fs/ext2.h @@ -199,6 +199,7 @@ u32_t ext2_reserve_node(vfs_mount_t *mount, u32_t bitmap_block_num, u32_t bitmap int ext2_num_block_groups(ext2_super_block_t *super); void ext2_write_super(vfs_mount_t *mount); +int ext2_resize_inode(vfs_mount_t *mount, u32_t inode_number, u32_t new_size); ext2_open_dir_t *ext2_open_dir(vfs_mount_t *mount, u32_t inode_number); int ext2_dir_read_entry(vfs_mount_t *mount, ext2_open_dir_t *open_dir, ext2_dir_entry_t *dentry); diff --git a/kernel/kernel.c b/kernel/kernel.c index 52fbab5..b896bd2 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -174,7 +174,6 @@ void k_init() } else kprintf("Error: Could not open directory\n"); - kprintf("Total inodes: %d, free inodes: %d\tTotal blocks: %d, free blocks: %d\n", vfs_total_inodes(mount), vfs_free_inodes(mount), vfs_total_blocks(mount), vfs_free_blocks(mount)); criticalCounter--; }