From: Darrick J. Wong Date: Wed, 3 Jul 2024 21:21:50 +0000 (-0700) Subject: xfs_db: basic xfs_check support for metadir X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=dbffba75d54bcd44d8746fa4c42f7604a807c9e3;p=users%2Fhch%2Fxfsprogs.git xfs_db: basic xfs_check support for metadir Support metadata directories in xfs_check. Signed-off-by: Darrick J. Wong --- diff --git a/db/check.c b/db/check.c index bceaf318d..588eed82c 100644 --- a/db/check.c +++ b/db/check.c @@ -2663,7 +2663,9 @@ process_dir( if (!sflag || id->ilist || CHECK_BLIST(bno)) dbprintf(_("no .. entry for directory %lld\n"), id->ino); error++; - } else if (parent == id->ino && id->ino != mp->m_sb.sb_rootino) { + } else if (parent == id->ino && + id->ino != mp->m_sb.sb_rootino && + id->ino != mp->m_sb.sb_metadirino) { if (!sflag || id->ilist || CHECK_BLIST(bno)) dbprintf(_(". and .. same for non-root directory %lld\n"), id->ino); @@ -2673,6 +2675,11 @@ process_dir( dbprintf(_("root directory %lld has .. %lld\n"), id->ino, parent); error++; + } else if (id->ino == mp->m_sb.sb_metadirino && id->ino != parent) { + if (!sflag || id->ilist || CHECK_BLIST(bno)) + dbprintf(_("metadata root directory %lld has .. %lld\n"), + id->ino, parent); + error++; } else if (parent != NULLFSINO && id->ino != parent) addparent_inode(id, parent); } @@ -2916,6 +2923,9 @@ process_inode( type = DBM_DIR; if (dip->di_format == XFS_DINODE_FMT_LOCAL) break; + if (xfs_has_metadir(mp) && + id->ino == mp->m_sb.sb_metadirino) + addlink_inode(id); blkmap = blkmap_alloc(dnextents); break; case S_IFREG: