xfs: check the metadata directory inumber in superblocks
authorDarrick J. Wong <djwong@kernel.org>
Mon, 4 Nov 2024 04:19:00 +0000 (20:19 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 5 Nov 2024 21:38:34 +0000 (13:38 -0800)
When metadata directories are enabled, make sure that the secondary
superblocks point to the metadata directory.  This isn't strictly
required because the secondaries are only used to recover damaged
filesystems, and the metadir root inumber is fixed.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/scrub/agheader.c

index f8e5b67..cad997f 100644 (file)
@@ -144,6 +144,11 @@ xchk_superblock(
        if (sb->sb_rootino != cpu_to_be64(mp->m_sb.sb_rootino))
                xchk_block_set_preen(sc, bp);
 
+       if (xfs_has_metadir(sc->mp)) {
+               if (sb->sb_metadirino != cpu_to_be64(mp->m_sb.sb_metadirino))
+                       xchk_block_set_preen(sc, bp);
+       }
+
        if (sb->sb_rbmino != cpu_to_be64(mp->m_sb.sb_rbmino))
                xchk_block_set_preen(sc, bp);