Ticket #5706: ext2_numInodes.patch

File ext2_numInodes.patch, 2.0 KB (added by jvff, 13 years ago)
  • src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp

     
    158158{
    159159    Volume* volume = (Volume*)_volume->private_volume;
    160160
    161     if (id < 2 || id > volume->NumBlocks()) {
     161    if (id < 2 || id > volume->NumInodes()) {
    162162        dprintf("ext2: inode at %Ld requested!\n", id);
    163163        return B_ERROR;
    164164    }
  • src/add-ons/kernel/file_systems/ext2/Volume.cpp

     
    200200    if (Magic() != (uint32)EXT2_SUPER_BLOCK_MAGIC)
    201201        return false;
    202202
     203    if (State() == 2)       
     204        // File system contains errors
     205        return false;
     206
    203207    return true;
    204208}
    205209
     
    278282    fBlockSize = 1UL << fSuperBlock.BlockShift();
    279283    fFirstDataBlock = fSuperBlock.FirstDataBlock();
    280284
     285    fNumInodes = fSuperBlock.NumInodes();
    281286    fNumGroups = (fSuperBlock.NumBlocks() - fFirstDataBlock - 1)
    282287        / fSuperBlock.BlocksPerGroup() + 1;
    283288    fGroupsPerBlock = fBlockSize / sizeof(ext2_block_group);
  • src/add-ons/kernel/file_systems/ext2/Volume.h

     
    3838            fs_volume*          FSVolume() const { return fFSVolume; }
    3939            const char*         Name() const;
    4040
     41            uint32              NumInodes() const
     42                                    { return fNumInodes; }
    4143            off_t               NumBlocks() const
    4244                                    { return fSuperBlock.NumBlocks(); }
    4345            off_t               FreeBlocks() const
     
    7476            uint32              fBlockSize;
    7577            uint32              fBlockShift;
    7678            uint32              fFirstDataBlock;
     79            uint32              fNumInodes;
    7780            uint32              fNumGroups;
    7881            uint32              fGroupsPerBlock;
    7982            ext2_block_group**  fGroupBlocks;