• Darrick J. Wong's avatar
    xfs: always scrub record/key order of interior records · 2bea8df0
    Darrick J. Wong authored
    In commit d47fef93, we removed the firstrec and firstkey fields of
    struct xchk_btree because Christoph thought they were unnecessary
    because we could use the record index in the btree cursor.  This is
    incorrect because bc_ptrs (now bc_levels[].ptr) tracks the cursor
    position within a specific btree block, not within the entire level.
    
    The end result is that scrub no longer detects situations where the
    rightmost record of a block is identical to the leftmost record of that
    block's right sibling.  Fix this regression by reintroducing record
    validity booleans so that order checking skips *only* the leftmost
    record/key in each level.
    
    Fixes: d47fef93 ("xfs: don't track firstrec/firstkey separately in xchk_btree")
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    2bea8df0
btree.c 20.8 KB