• Benjamin Marzinski's avatar
    [GFS2] fix gfs2 block allocation (cleaned up) · 5af4e7a0
    Benjamin Marzinski authored
    This patch fixes bz 450641.
    
    This patch changes the computation for zero_metapath_length(), which it
    renames to metapath_branch_start(). When you are extending the metadata
    tree, The indirect blocks that point to the new data block must either
    diverge from the existing tree either at the inode, or at the first
    indirect block. They can diverge at the first indirect block because the
    inode has room for 483 pointers while the indirect blocks have room for
    509 pointers, so when the tree is grown, there is some free space in the
    first indirect block. What metapath_branch_start() now computes is the
    height where the first indirect block for the new data block is located.
    It can either be 1 (if the indirect block diverges from the inode) or 2
    (if it diverges from the first indirect block).
    Signed-off-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    5af4e7a0
bmap.c 32 KB