From 73adc7f8085fcab5c4ee248fc831946976062f4d Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 3 Jul 2024 14:21:55 -0700 Subject: [PATCH] xfs_repair: adjust keep_fsinos to handle metadata directories In keep_fsinos, mark the root of the metadata directory tree as inuse. The realtime bitmap and summary files still come after the root directories, so this is a fairly simple change to the loop test. Signed-off-by: Darrick J. Wong --- repair/phase5.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/repair/phase5.c b/repair/phase5.c index 52666ad88..51efcd6ca 100644 --- a/repair/phase5.c +++ b/repair/phase5.c @@ -419,13 +419,21 @@ static void keep_fsinos(xfs_mount_t *mp) { ino_tree_node_t *irec; - int i; + int i, inuse = 3; /* root, rbm, rsum */ + + if (xfs_has_metadir(mp)) + inuse++; /* root, metaroot, rbm, rsum */ 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++) + for (i = 0; i < inuse; i++) { set_inode_used(irec, i); + + /* Everything after the root dir is metadata */ + if (i) + set_inode_is_meta(irec, i); + } } static void -- 2.50.1