mirror of
https://github.com/torvalds/linux.git
synced 2026-09-13 23:50:02 +02:00
xfs: fix backwards mergeability logic in refcount scrubber
When we start the refcount or rtrefcount btree scanners, prev_rec is
initialized to all zeroes. This is done so that the record mergeability
checks skip the first record because you must have two records to
compare. Unfortunately, I got the logic backwards, so scrub has never
complained about mergeable refcountbt records. Fix this bug that LOLLM
noticed.
Cc: stable@vger.kernel.org # v6.4
Fixes: db0502b39c ("xfs: flag refcount btree records that could be merged")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Assisted-by: LOLLM # finding obvious bugs
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
d7f97be48c
commit
e8b01aaaff
|
|
@ -410,7 +410,7 @@ xchk_refcount_mergeable(
|
|||
const struct xfs_refcount_irec *r1 = &rrc->prev_rec;
|
||||
|
||||
/* Ignore if prev_rec is not yet initialized. */
|
||||
if (r1->rc_blockcount > 0)
|
||||
if (r1->rc_blockcount == 0)
|
||||
return false;
|
||||
|
||||
if (r1->rc_domain != r2->rc_domain)
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ xchk_rtrefcount_mergeable(
|
|||
const struct xfs_refcount_irec *r1 = &rrc->prev_rec;
|
||||
|
||||
/* Ignore if prev_rec is not yet initialized. */
|
||||
if (r1->rc_blockcount > 0)
|
||||
if (r1->rc_blockcount == 0)
|
||||
return false;
|
||||
|
||||
if (r1->rc_startblock + r1->rc_blockcount != r2->rc_startblock)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user