]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_repair: adjust keep_fsinos to handle metadata directories
authorDarrick J. Wong <djwong@kernel.org>
Fri, 15 Jul 2022 21:22:05 +0000 (14:22 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 22 Nov 2023 23:03:32 +0000 (15:03 -0800)
On a filesystem with metadata directories, we only want to automatically
mark the two root directories present because those are the only two
statically allocated inode numbers -- the rt summary inode is now just a
regular file in a directory.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
repair/phase5.c

index d7bacb18b84931963bd78badb037b05cd325992b..983f2169228bbc942a20911626fff1e9a5e22032 100644 (file)
@@ -421,13 +421,14 @@ static void
 keep_fsinos(xfs_mount_t *mp)
 {
        ino_tree_node_t         *irec;
-       int                     i;
 
        irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, mp->m_sb.sb_rootino),
                        XFS_INO_TO_AGINO(mp, mp->m_sb.sb_rootino));
 
-       for (i = 0; i < 3; i++)
-               set_inode_used(irec, i);
+       set_inode_used(irec, 0);        /* root dir */
+       set_inode_used(irec, 1);        /* rt bitmap or metadata dir root */
+       if (!xfs_has_metadir(mp))
+               set_inode_used(irec, 2);        /* rt summary */
 }
 
 static void