• Darrick J. Wong's avatar
    xfs: bmap scrub should only scrub records once · 519e5869
    Darrick J. Wong authored
    The inode block mapping scrub function does more work for btree format
    extent maps than is absolutely necessary -- first it will walk the bmbt
    and check all the entries, and then it will load the incore tree and
    check every entry in that tree, possibly for a second time.
    
    Simplify the code and decrease check runtime by separating the two
    responsibilities.  The bmbt walk will make sure the incore extent
    mappings are loaded, check the shape of the bmap btree (via xchk_btree)
    and check that every bmbt record has a corresponding incore extent map;
    and the incore extent map walk takes all the responsibility for checking
    the mapping records and cross referencing them with other AG metadata.
    
    This enables us to clean up some messy parameter handling and reduce
    redundant code.  Rename a few functions to make the split of
    responsibilities clearer.
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    519e5869
bmap.c 19.5 KB