• Darrick J. Wong's avatar
    xfs: fix a bug in the online fsck directory leaf1 bestcount check · e5d1802c
    Darrick J. Wong authored
    When xfs_scrub encounters a directory with a leaf1 block, it tries to
    validate that the leaf1 block's bestcount (aka the best free count of
    each directory data block) is the correct size.  Previously, this author
    believed that comparing bestcount to the directory isize (since
    directory data blocks are under isize, and leaf/bestfree blocks are
    above it) was sufficient.
    
    Unfortunately during testing of online repair, it was discovered that it
    is possible to create a directory with a hole between the last directory
    block and isize.  The directory code seems to handle this situation just
    fine and xfs_repair doesn't complain, which effectively makes this quirk
    part of the disk format.
    
    Fix the check to work properly.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    e5d1802c
dir.c 23.6 KB