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);
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);
}
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: