mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
xfs: grab rtrmap btree when checking rgsuper
LOLLM noticed that we aren't grabbing the rtrmap btree when we check the
realtime group superblock. As a result, none of the cross-referencing
checks have ever run. Fix this.
Cc: stable@vger.kernel.org # v6.14
Fixes: 428e488465 ("xfs: allow queued realtime intents to drain before scrubbing")
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
9af789fa27
commit
ea6e2d9de2
|
|
@ -23,6 +23,8 @@ int
|
|||
xchk_setup_rgsuperblock(
|
||||
struct xfs_scrub *sc)
|
||||
{
|
||||
if (xchk_need_intent_drain(sc))
|
||||
xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
|
||||
return xchk_trans_alloc(sc, 0);
|
||||
}
|
||||
|
||||
|
|
@ -43,6 +45,7 @@ xchk_rgsuperblock(
|
|||
struct xfs_scrub *sc)
|
||||
{
|
||||
xfs_rgnumber_t rgno = sc->sm->sm_agno;
|
||||
unsigned int flags;
|
||||
int error;
|
||||
|
||||
/*
|
||||
|
|
@ -63,7 +66,12 @@ xchk_rgsuperblock(
|
|||
if (!xchk_xref_process_error(sc, 0, 0, &error))
|
||||
return error;
|
||||
|
||||
error = xchk_rtgroup_lock(sc, &sc->sr, XFS_RTGLOCK_BITMAP_SHARED);
|
||||
if (xfs_has_rtrmapbt(sc->mp))
|
||||
flags = XFS_RTGLOCK_BITMAP | XFS_RTGLOCK_RMAP;
|
||||
else
|
||||
flags = XFS_RTGLOCK_BITMAP_SHARED;
|
||||
|
||||
error = xchk_rtgroup_lock(sc, &sc->sr, flags);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user