Import backup from 2005-02-01

This commit is contained in:
Josh Holtrop 2005-02-01 22:00:00 -05:00
parent 4638656aaf
commit 862b36b37b
2 changed files with 31 additions and 1 deletions

View File

@ -299,9 +299,37 @@ u32_t ext2_alloc_inode(vfs_mount_t *mount)
ext2_super_block_t *super = mount->super;
if (!super->s_free_inodes_count)
return 0; // no free inodes
int bg;
for (bg = 0; bg < super->s_blocks_count; b++)
{
ext2_group_desc_t group_desc = ext2_get_group_desc(mount, b);
if (group_desc.bg_free_inodes_count)
{
u32_t node = ext2_reserve_node(super, group_desc.bg_inode_bitmap, super->s_inodes_per_group);
return b *
}
}
return 0;
}
u32_t ext2_reserve_node(ext2_super_block_t *super, u32_t bitmap_block_num, u32_t max_node)
{
u32_t *bitmap = kmalloc(1024 << super->s_log_block_size);
int block, max_block = max_node / (8192 << super->s_log_block_size);
for (block = 0; block < max_block; block++)
{
block_read(super->major, super->minor, ext2_FSToDiskBlock(bitmap_block_num + block, super),
2 << super->s_log_block_size, bitmap);
}
kfree(bitmap);
}
int ext2_num_block_groups(ext2_super_block_t *super)
{
}
/***************** VFS INTERFACE FUNCTIONS *******************/

View File

@ -192,6 +192,8 @@ int ext2_inode_seek(vfs_mount_t *mount, ext2_open_inode_t *open_inode, u32_t blo
int ext2_inode_status(vfs_mount_t *mount, u32_t inode_number);
int ext2_block_status(vfs_mount_t *mount, u32_t block_number);
u32_t ext2_alloc_inode(vfs_mount_t *mount);
u32_t ext2_reserve_node(ext2_super_block_t *super, u32_t bitmap_block_num, u32_t max_node);
int ext2_num_block_groups(ext2_super_block_t *super);
ext2_open_dir_t *ext2_open_dir(vfs_mount_t *mount, u32_t inode_number);