Changeset d76973c in mainline for uspace/lib/ext4/libext4_types.h


Ignore:
Timestamp:
2015-04-25T21:20:11Z (10 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
60c409c
Parents:
7f29575
Message:

libext4: introduce support for flexible block groups.

With FLEX_BG, several block groups are tied together as one single group,
the first group of the flex_bg contains the block/inode bitmaps and the inode tables of all the other groups.
This improves metadata locality and frees up a lot of contiguous free space for extents.

  • modified ext4_balloc_free_blocks() so it can free extents spanning 2 or more block groups
  • with FLEX_BG the inode table, the bitmap and inode blocks of a group can reside on a different group.
    • the ext4_balloc_get_first_data_block_in_group() function has been modified to return a correct result in such a case.
    • improve the ext4_filesystem_init_block_bitmap() for the flex_bg case.
  • added the ext4_filesystem_blockaddr2group() function that given a block number returns the id of the group it belongs to.
  • added the ext4_filesystem_bg_get_itable_size() functions that given a group id number returns the size in blocks of its inode table.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext4/libext4_types.h

    r7f29575 rd76973c  
    214214        (EXT4_FEATURE_INCOMPAT_FILETYPE | \
    215215        EXT4_FEATURE_INCOMPAT_EXTENTS | \
    216         EXT4_FEATURE_INCOMPAT_64BIT)
     216        EXT4_FEATURE_INCOMPAT_64BIT | \
     217        EXT4_FEATURE_INCOMPAT_FLEX_BG)
    217218
    218219#define EXT4_FEATURE_RO_COMPAT_SUPP \
Note: See TracChangeset for help on using the changeset viewer.