Loading fs/xfs/scrub/inode.c +7 −2 Original line number Diff line number Diff line Loading @@ -443,8 +443,13 @@ xchk_dinode( break; case 2: case 3: if (!xfs_dinode_is_metadir(dip) && dip->di_metatype) if (xfs_dinode_is_metadir(dip)) { if (be16_to_cpu(dip->di_metatype) >= XFS_METAFILE_MAX) xchk_ino_set_corrupt(sc, ino); } else { if (dip->di_metatype != 0) xchk_ino_set_corrupt(sc, ino); } if (dip->di_mode == 0 && sc->ip) xchk_ino_set_corrupt(sc, ino); Loading fs/xfs/scrub/inode_repair.c +5 −1 Original line number Diff line number Diff line Loading @@ -526,9 +526,13 @@ xrep_dinode_nlinks( return; } if (!xfs_dinode_is_metadir(dip)) if (xfs_dinode_is_metadir(dip)) { if (be16_to_cpu(dip->di_metatype) >= XFS_METAFILE_MAX) dip->di_metatype = cpu_to_be16(XFS_METAFILE_UNKNOWN); } else { dip->di_metatype = 0; } } /* Fix any conflicting flags that the verifiers complain about. */ STATIC void Loading Loading
fs/xfs/scrub/inode.c +7 −2 Original line number Diff line number Diff line Loading @@ -443,8 +443,13 @@ xchk_dinode( break; case 2: case 3: if (!xfs_dinode_is_metadir(dip) && dip->di_metatype) if (xfs_dinode_is_metadir(dip)) { if (be16_to_cpu(dip->di_metatype) >= XFS_METAFILE_MAX) xchk_ino_set_corrupt(sc, ino); } else { if (dip->di_metatype != 0) xchk_ino_set_corrupt(sc, ino); } if (dip->di_mode == 0 && sc->ip) xchk_ino_set_corrupt(sc, ino); Loading
fs/xfs/scrub/inode_repair.c +5 −1 Original line number Diff line number Diff line Loading @@ -526,9 +526,13 @@ xrep_dinode_nlinks( return; } if (!xfs_dinode_is_metadir(dip)) if (xfs_dinode_is_metadir(dip)) { if (be16_to_cpu(dip->di_metatype) >= XFS_METAFILE_MAX) dip->di_metatype = cpu_to_be16(XFS_METAFILE_UNKNOWN); } else { dip->di_metatype = 0; } } /* Fix any conflicting flags that the verifiers complain about. */ STATIC void Loading