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 f8e5b67128d25a190a4b49a7bca355defe603f74..cad997f38a424cf59020992b4edfdadb49f3498c 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);