Changeset a2a1792 in mainline


Ignore:
Timestamp:
2011-02-16T17:11:51Z (13 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b65cae22
Parents:
5352d72
Message:

Fixed locating of inodes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext2/libext2_filesystem.c

    r5352d72 ra2a1792  
    186186        uint32_t block_group;
    187187        uint32_t offset_in_group;
     188        uint32_t byte_offset_in_group;
     189        size_t offset_in_block;
    188190        uint32_t inodes_per_group;
    189191        uint32_t inode_table_start;
     
    217219        block_size = ext2_superblock_get_block_size(fs->superblock);
    218220       
    219         block_id = inode_table_start + ((index * inode_size) / block_size);
     221        byte_offset_in_group = offset_in_group * inode_size;
     222       
     223        block_id = inode_table_start + (byte_offset_in_group / block_size);
     224        offset_in_block = byte_offset_in_group % block_size;
    220225       
    221226        rc = block_get(&newref->block, fs->device, block_id, 0);
     
    225230        }
    226231       
    227         newref->inode = newref->block->data + (offset_in_group*inode_size);
     232        newref->inode = newref->block->data + offset_in_block;
    228233       
    229234        *ref = newref;
Note: See TracChangeset for help on using the changeset viewer.