Import backup from 2005-02-01
This commit is contained in:
parent
4638656aaf
commit
862b36b37b
@ -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 *******************/
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user