Lines Matching full:sc

107 	struct xfs_scrub	*sc;  member
149 struct xfs_scrub *sc, in xrep_setup_inode() argument
154 sc->buf = kzalloc(sizeof(struct xrep_inode), XCHK_GFP_FLAGS); in xrep_setup_inode()
155 if (!sc->buf) in xrep_setup_inode()
158 ri = sc->buf; in xrep_setup_inode()
160 ri->sc = sc; in xrep_setup_inode()
170 struct xfs_scrub *sc, in xrep_dinode_buf_core() argument
175 struct xfs_trans *tp = sc->tp; in xrep_dinode_buf_core()
176 struct xfs_mount *mp = sc->mp; in xrep_dinode_buf_core()
213 struct xfs_scrub *sc, in xrep_dinode_buf() argument
216 struct xfs_mount *mp = sc->mp; in xrep_dinode_buf()
222 xrep_dinode_buf_core(sc, bp, i << mp->m_sb.sb_inodelog); in xrep_dinode_buf()
228 struct xfs_scrub *sc, in xrep_dinode_header() argument
231 trace_xrep_dinode_header(sc, dip); in xrep_dinode_header()
234 if (!xfs_dinode_good_version(sc->mp, dip->di_version)) in xrep_dinode_header()
236 dip->di_ino = cpu_to_be64(sc->sm->sm_ino); in xrep_dinode_header()
237 uuid_copy(&dip->di_uuid, &sc->mp->m_sb.sb_meta_uuid); in xrep_dinode_header()
238 dip->di_gen = cpu_to_be32(sc->sm->sm_gen); in xrep_dinode_header()
247 struct xfs_scrub *sc, in xrep_dinode_findmode_dirent() argument
257 if (xchk_should_terminate(ri->sc, &error)) in xrep_dinode_findmode_dirent()
260 if (ino != sc->sm->sm_ino) in xrep_dinode_findmode_dirent()
278 trace_xrep_dinode_findmode_dirent_inval(ri->sc, dp, name->type, in xrep_dinode_findmode_dirent()
284 trace_xrep_dinode_findmode_dirent(ri->sc, dp, name->type); in xrep_dinode_findmode_dirent()
318 if (xchk_should_terminate(ri->sc, &error)) in xrep_dinode_trylock_directory()
343 struct xfs_scrub *sc = ri->sc; in xrep_dinode_findmode_walk_directory() local
379 error = xchk_dir_walk(sc, dp, xrep_dinode_findmode_dirent, ri); in xrep_dinode_findmode_walk_directory()
397 struct xfs_scrub *sc = ri->sc; in xrep_dinode_find_mode() local
402 if (!xfs_has_ftype(sc->mp)) { in xrep_dinode_find_mode()
413 xchk_iscan_start(sc, 5000, 100, &ri->ftype_iscan); in xrep_dinode_find_mode()
415 ri->ftype_iscan.skip_ino = sc->sm->sm_ino; in xrep_dinode_find_mode()
421 xchk_irele(sc, dp); in xrep_dinode_find_mode()
424 if (xchk_should_terminate(sc, &error)) in xrep_dinode_find_mode()
439 } else if (!(sc->flags & XCHK_TRY_HARDER)) { in xrep_dinode_find_mode()
488 struct xfs_scrub *sc = ri->sc; in xrep_dinode_mode() local
492 trace_xrep_dinode_mode(sc, dip); in xrep_dinode_mode()
543 struct xfs_scrub *sc, in xrep_dinode_flags() argument
547 struct xfs_mount *mp = sc->mp; in xrep_dinode_flags()
552 trace_xrep_dinode_flags(sc, dip); in xrep_dinode_flags()
580 fa = xfs_dinode_verify_metadir(sc->mp, dip, mode, flags, in xrep_dinode_flags()
599 struct xfs_scrub *sc = ri->sc; in xrep_dinode_zap_symlink() local
602 trace_xrep_dinode_zap_symlink(sc, dip); in xrep_dinode_zap_symlink()
622 struct xfs_scrub *sc = ri->sc; in xrep_dinode_zap_dir() local
623 struct xfs_mount *mp = sc->mp; in xrep_dinode_zap_dir()
627 trace_xrep_dinode_zap_dir(sc, dip); in xrep_dinode_zap_dir()
645 struct xfs_scrub *sc = ri->sc; in xrep_dinode_size() local
649 trace_xrep_dinode_size(sc, dip); in xrep_dinode_size()
693 struct xfs_scrub *sc, in xrep_dinode_extsize_hints() argument
696 struct xfs_mount *mp = sc->mp; in xrep_dinode_extsize_hints()
703 trace_xrep_dinode_extsize_hints(sc, dip); in xrep_dinode_extsize_hints()
714 (xfs_has_zoned(sc->mp) && in xrep_dinode_extsize_hints()
736 if (xchk_should_terminate(ri->sc, &error)) in xrep_dinode_walk_rmap()
740 if (rec->rm_owner != ri->sc->sm->sm_ino) in xrep_dinode_walk_rmap()
768 error = xfs_alloc_read_agf(pag, ri->sc->tp, 0, &agf); in xrep_dinode_count_ag_rmaps()
772 cur = xfs_rmapbt_init_cursor(ri->sc->mp, ri->sc->tp, agf, pag); in xrep_dinode_count_ag_rmaps()
775 xfs_trans_brelse(ri->sc->tp, agf); in xrep_dinode_count_ag_rmaps()
789 if (xchk_should_terminate(ri->sc, &error)) in xrep_dinode_walk_rtrmap()
793 if (rec->rm_owner != ri->sc->sm->sm_ino) in xrep_dinode_walk_rtrmap()
810 struct xfs_scrub *sc = ri->sc; in xrep_dinode_count_rtgroup_rmaps() local
813 error = xrep_rtgroup_init(sc, rtg, &sc->sr, XFS_RTGLOCK_RMAP); in xrep_dinode_count_rtgroup_rmaps()
817 error = xfs_rmap_query_all(sc->sr.rmap_cur, xrep_dinode_walk_rtrmap, in xrep_dinode_count_rtgroup_rmaps()
819 xchk_rtgroup_btcur_free(&sc->sr); in xrep_dinode_count_rtgroup_rmaps()
820 xchk_rtgroup_free(sc, &sc->sr); in xrep_dinode_count_rtgroup_rmaps()
833 if (!xfs_has_rmapbt(ri->sc->mp)) in xrep_dinode_count_rmaps()
836 while ((rtg = xfs_rtgroup_next(ri->sc->mp, rtg))) { in xrep_dinode_count_rmaps()
844 while ((pag = xfs_perag_next(ri->sc->mp, pag))) { in xrep_dinode_count_rmaps()
856 trace_xrep_dinode_count_rmaps(ri->sc, in xrep_dinode_count_rmaps()
865 struct xfs_scrub *sc, in xrep_dinode_bad_extents_fork() argument
887 fa = xfs_bmap_validate_extent_raw(sc->mp, isrt, whichfork, in xrep_dinode_bad_extents_fork()
899 struct xfs_scrub *sc, in xrep_dinode_bad_bmbt_fork() argument
924 if (level == 0 || level >= XFS_BM_MAXLEVELS(sc->mp, whichfork)) in xrep_dinode_bad_bmbt_fork()
936 if (!xfs_verify_fileoff(sc->mp, fileoff)) in xrep_dinode_bad_bmbt_fork()
941 if (!xfs_verify_fsbno(sc->mp, fsbno)) in xrep_dinode_bad_bmbt_fork()
951 struct xfs_scrub *sc, in xrep_dinode_bad_rtrmapbt_fork() argument
966 if (level > sc->mp->m_rtrmap_maxlevels) in xrep_dinode_bad_rtrmapbt_fork()
979 struct xfs_scrub *sc, in xrep_dinode_bad_rtrefcountbt_fork() argument
994 if (level > sc->mp->m_rtrefc_maxlevels) in xrep_dinode_bad_rtrefcountbt_fork()
1007 struct xfs_scrub *sc, in xrep_dinode_bad_metabt_fork() argument
1017 return xrep_dinode_bad_rtrmapbt_fork(sc, dip, dfork_size); in xrep_dinode_bad_metabt_fork()
1019 return xrep_dinode_bad_rtrefcountbt_fork(sc, dip, dfork_size); in xrep_dinode_bad_metabt_fork()
1033 struct xfs_scrub *sc, in xrep_dinode_check_dfork() argument
1086 dfork_size = XFS_DFORK_SIZE(dip, sc->mp, XFS_DATA_FORK); in xrep_dinode_check_dfork()
1098 xfs_dir2_sf_verify(sc->mp, dfork_ptr, data_size) != NULL) in xrep_dinode_check_dfork()
1106 if (xrep_dinode_bad_extents_fork(sc, dip, dfork_size, in xrep_dinode_check_dfork()
1111 if (xrep_dinode_bad_bmbt_fork(sc, dip, dfork_size, in xrep_dinode_check_dfork()
1116 if (xrep_dinode_bad_metabt_fork(sc, dip, dfork_size, in xrep_dinode_check_dfork()
1156 struct xfs_scrub *sc = ri->sc; in xrep_dinode_zap_dfork() local
1158 trace_xrep_dinode_zap_dfork(sc, dip); in xrep_dinode_zap_dfork()
1203 struct xfs_scrub *sc, in xrep_dinode_check_afork() argument
1214 afork_size = XFS_DFORK_SIZE(dip, sc->mp, XFS_ATTR_FORK); in xrep_dinode_check_afork()
1231 if (xrep_dinode_bad_extents_fork(sc, dip, afork_size, in xrep_dinode_check_afork()
1236 if (xrep_dinode_bad_bmbt_fork(sc, dip, afork_size, in xrep_dinode_check_afork()
1241 if (xrep_dinode_bad_metabt_fork(sc, dip, afork_size, in xrep_dinode_check_afork()
1262 struct xfs_scrub *sc = ri->sc; in xrep_dinode_zap_afork() local
1264 trace_xrep_dinode_zap_afork(sc, dip); in xrep_dinode_zap_afork()
1294 struct xfs_scrub *sc = ri->sc; in xrep_dinode_ensure_forkoff() local
1297 unsigned int lit_sz = XFS_LITINO(sc->mp); in xrep_dinode_ensure_forkoff()
1300 trace_xrep_dinode_ensure_forkoff(sc, dip); in xrep_dinode_ensure_forkoff()
1319 afork_min = XFS_DFORK_SIZE(dip, sc->mp, XFS_ATTR_FORK); in xrep_dinode_ensure_forkoff()
1348 afork_min = xfs_bmap_broot_space(sc->mp, bmdr); in xrep_dinode_ensure_forkoff()
1398 dfork_min = xfs_bmap_broot_space(sc->mp, bmdr); in xrep_dinode_ensure_forkoff()
1404 dfork_min = xfs_rtrmap_broot_space(sc->mp, rmdr); in xrep_dinode_ensure_forkoff()
1408 dfork_min = xfs_rtrefcount_broot_space(sc->mp, rcdr); in xrep_dinode_ensure_forkoff()
1438 bmdr_minsz > XFS_DFORK_DSIZE(dip, sc->mp)) { in xrep_dinode_ensure_forkoff()
1453 memmove(after, before, XFS_DFORK_ASIZE(dip, sc->mp)); in xrep_dinode_ensure_forkoff()
1464 bmdr_minsz > XFS_DFORK_ASIZE(dip, sc->mp)) { in xrep_dinode_ensure_forkoff()
1498 struct xfs_scrub *sc = ri->sc; in xrep_dinode_zap_forks() local
1506 trace_xrep_dinode_zap_forks(sc, dip); in xrep_dinode_zap_forks()
1523 zap_datafork = xrep_dinode_check_dfork(sc, dip, mode); in xrep_dinode_zap_forks()
1525 zap_attrfork = xrep_dinode_check_afork(sc, dip); in xrep_dinode_zap_forks()
1549 struct xfs_scrub *sc = ri->sc; in xrep_dinode_core() local
1552 xfs_ino_t ino = sc->sm->sm_ino; in xrep_dinode_core()
1562 error = xfs_trans_read_buf(sc->mp, sc->tp, sc->mp->m_ddev_targp, in xrep_dinode_core()
1568 xrep_dinode_buf(sc, bp); in xrep_dinode_core()
1573 xrep_dinode_header(sc, dip); in xrep_dinode_core()
1578 xrep_dinode_flags(sc, dip, ri->rt_extents > 0); in xrep_dinode_core()
1580 xrep_dinode_extsize_hints(sc, dip); in xrep_dinode_core()
1585 trace_xrep_dinode_fixed(sc, dip); in xrep_dinode_core()
1586 xfs_dinode_calc_crc(sc->mp, dip); in xrep_dinode_core()
1587 xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_DINO_BUF); in xrep_dinode_core()
1588 xfs_trans_log_buf(sc->tp, bp, ri->imap.im_boffset, in xrep_dinode_core()
1589 ri->imap.im_boffset + sc->mp->m_sb.sb_inodesize - 1); in xrep_dinode_core()
1600 iget_error = xchk_iget(sc, ino, &sc->ip); in xrep_dinode_core()
1602 xchk_ilock(sc, XFS_IOLOCK_EXCL); in xrep_dinode_core()
1609 error = xrep_trans_commit(sc); in xrep_dinode_core()
1616 error = xchk_trans_alloc(sc, 0); in xrep_dinode_core()
1620 error = xrep_ino_dqattach(sc); in xrep_dinode_core()
1624 xchk_ilock(sc, XFS_ILOCK_EXCL); in xrep_dinode_core()
1626 xfs_inode_mark_sick(sc->ip, ri->ino_sick_mask); in xrep_dinode_core()
1635 struct xfs_scrub *sc = ri->sc; in xrep_dinode_problems() local
1643 if (XFS_IS_UQUOTA_ON(sc->mp)) in xrep_dinode_problems()
1644 xrep_force_quotacheck(sc, XFS_DQTYPE_USER); in xrep_dinode_problems()
1645 if (XFS_IS_GQUOTA_ON(sc->mp)) in xrep_dinode_problems()
1646 xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP); in xrep_dinode_problems()
1647 if (XFS_IS_PQUOTA_ON(sc->mp)) in xrep_dinode_problems()
1648 xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ); in xrep_dinode_problems()
1662 struct xfs_scrub *sc) in xrep_inode_blockcounts() argument
1670 trace_xrep_inode_blockcounts(sc); in xrep_inode_blockcounts()
1673 error = xchk_inode_count_blocks(sc, XFS_DATA_FORK, &nextents, &count); in xrep_inode_blockcounts()
1676 if (xfs_is_reflink_inode(sc->ip)) { in xrep_inode_blockcounts()
1682 } else if (XFS_IS_REALTIME_INODE(sc->ip)) { in xrep_inode_blockcounts()
1683 if (count >= sc->mp->m_sb.sb_rblocks) in xrep_inode_blockcounts()
1686 if (count >= sc->mp->m_sb.sb_dblocks) in xrep_inode_blockcounts()
1689 error = xrep_ino_ensure_extent_count(sc, XFS_DATA_FORK, nextents); in xrep_inode_blockcounts()
1692 sc->ip->i_df.if_nextents = nextents; in xrep_inode_blockcounts()
1695 ifp = xfs_ifork_ptr(sc->ip, XFS_ATTR_FORK); in xrep_inode_blockcounts()
1697 error = xchk_inode_count_blocks(sc, XFS_ATTR_FORK, &nextents, in xrep_inode_blockcounts()
1701 if (count >= sc->mp->m_sb.sb_dblocks) in xrep_inode_blockcounts()
1703 error = xrep_ino_ensure_extent_count(sc, XFS_ATTR_FORK, in xrep_inode_blockcounts()
1712 sc->ip->i_nblocks = count + acount; in xrep_inode_blockcounts()
1719 struct xfs_scrub *sc) in xrep_inode_ids() argument
1723 trace_xrep_inode_ids(sc); in xrep_inode_ids()
1725 if (!uid_valid(VFS_I(sc->ip)->i_uid)) { in xrep_inode_ids()
1726 i_uid_write(VFS_I(sc->ip), 0); in xrep_inode_ids()
1728 if (XFS_IS_UQUOTA_ON(sc->mp)) in xrep_inode_ids()
1729 xrep_force_quotacheck(sc, XFS_DQTYPE_USER); in xrep_inode_ids()
1732 if (!gid_valid(VFS_I(sc->ip)->i_gid)) { in xrep_inode_ids()
1733 i_gid_write(VFS_I(sc->ip), 0); in xrep_inode_ids()
1735 if (XFS_IS_GQUOTA_ON(sc->mp)) in xrep_inode_ids()
1736 xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP); in xrep_inode_ids()
1739 if (sc->ip->i_projid == -1U) { in xrep_inode_ids()
1740 sc->ip->i_projid = 0; in xrep_inode_ids()
1742 if (XFS_IS_PQUOTA_ON(sc->mp)) in xrep_inode_ids()
1743 xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ); in xrep_inode_ids()
1748 VFS_I(sc->ip)->i_mode &= ~(S_ISUID | S_ISGID); in xrep_inode_ids()
1786 struct xfs_scrub *sc) in xrep_inode_flags() argument
1790 trace_xrep_inode_flags(sc); in xrep_inode_flags()
1792 mode = VFS_I(sc->ip)->i_mode; in xrep_inode_flags()
1795 if (sc->ip->i_diflags & ~XFS_DIFLAG_ANY) in xrep_inode_flags()
1796 sc->ip->i_diflags &= ~XFS_DIFLAG_ANY; in xrep_inode_flags()
1799 if (sc->ip->i_ino == sc->mp->m_sb.sb_rbmino) in xrep_inode_flags()
1800 sc->ip->i_diflags |= XFS_DIFLAG_NEWRTBM; in xrep_inode_flags()
1802 sc->ip->i_diflags &= ~XFS_DIFLAG_NEWRTBM; in xrep_inode_flags()
1806 sc->ip->i_diflags &= ~(XFS_DIFLAG_RTINHERIT | in xrep_inode_flags()
1813 sc->ip->i_diflags &= ~(XFS_DIFLAG_REALTIME | in xrep_inode_flags()
1817 if (sc->ip->i_diflags & XFS_DIFLAG_REALTIME) in xrep_inode_flags()
1818 sc->ip->i_diflags &= ~XFS_DIFLAG_FILESTREAM; in xrep_inode_flags()
1821 if ((sc->ip->i_diflags & XFS_DIFLAG_IMMUTABLE) && in xrep_inode_flags()
1822 (sc->ip->i_diflags & XFS_DIFLAG_APPEND)) in xrep_inode_flags()
1823 sc->ip->i_diflags &= ~XFS_DIFLAG_APPEND; in xrep_inode_flags()
1826 if (sc->ip->i_diflags2 & ~XFS_DIFLAG2_ANY) in xrep_inode_flags()
1827 sc->ip->i_diflags2 &= ~XFS_DIFLAG2_ANY; in xrep_inode_flags()
1830 if (!xfs_has_reflink(sc->mp) || !S_ISREG(mode)) in xrep_inode_flags()
1831 sc->ip->i_diflags2 &= ~XFS_DIFLAG2_REFLINK; in xrep_inode_flags()
1835 sc->ip->i_diflags2 &= ~XFS_DIFLAG2_DAX; in xrep_inode_flags()
1845 struct xfs_scrub *sc) in xrep_inode_blockdir_size() argument
1853 trace_xrep_inode_blockdir_size(sc); in xrep_inode_blockdir_size()
1855 error = xfs_iread_extents(sc->tp, sc->ip, XFS_DATA_FORK); in xrep_inode_blockdir_size()
1860 ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK); in xrep_inode_blockdir_size()
1861 off = XFS_B_TO_FSB(sc->mp, XFS_DIR2_SPACE_SIZE); in xrep_inode_blockdir_size()
1862 if (!xfs_iext_lookup_extent_before(sc->ip, ifp, &off, &icur, &got)) { in xrep_inode_blockdir_size()
1868 sc->ip->i_disk_size = min_t(loff_t, XFS_DIR2_SPACE_SIZE, in xrep_inode_blockdir_size()
1869 XFS_FSB_TO_B(sc->mp, off)); in xrep_inode_blockdir_size()
1875 struct xfs_scrub *sc) in xrep_inode_sfdir_size() argument
1879 trace_xrep_inode_sfdir_size(sc); in xrep_inode_sfdir_size()
1881 ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK); in xrep_inode_sfdir_size()
1882 sc->ip->i_disk_size = ifp->if_bytes; in xrep_inode_sfdir_size()
1891 struct xfs_scrub *sc) in xrep_inode_dir_size() argument
1893 trace_xrep_inode_dir_size(sc); in xrep_inode_dir_size()
1895 switch (sc->ip->i_df.if_format) { in xrep_inode_dir_size()
1898 xrep_inode_blockdir_size(sc); in xrep_inode_dir_size()
1901 xrep_inode_sfdir_size(sc); in xrep_inode_dir_size()
1909 struct xfs_scrub *sc) in xrep_inode_extsize() argument
1912 if ((sc->ip->i_diflags & XFS_DIFLAG_RTINHERIT) && in xrep_inode_extsize()
1913 (sc->ip->i_diflags & XFS_DIFLAG_EXTSZINHERIT) && in xrep_inode_extsize()
1914 xfs_extlen_to_rtxmod(sc->mp, sc->ip->i_extsize) > 0) { in xrep_inode_extsize()
1915 sc->ip->i_extsize = 0; in xrep_inode_extsize()
1916 sc->ip->i_diflags &= ~XFS_DIFLAG_EXTSZINHERIT; in xrep_inode_extsize()
1923 struct xfs_scrub *sc) in xrep_inode_pptr() argument
1925 struct xfs_mount *mp = sc->mp; in xrep_inode_pptr()
1926 struct xfs_inode *ip = sc->ip; in xrep_inode_pptr()
1947 return xfs_bmap_add_attrfork(sc->tp, ip, in xrep_inode_pptr()
1954 struct xfs_scrub *sc) in xrep_inode_cowextsize() argument
1957 if ((sc->ip->i_diflags & XFS_DIFLAG_RTINHERIT) && in xrep_inode_cowextsize()
1958 (sc->ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE) && in xrep_inode_cowextsize()
1959 sc->ip->i_extsize % sc->mp->m_sb.sb_rextsize > 0) { in xrep_inode_cowextsize()
1960 sc->ip->i_cowextsize = 0; in xrep_inode_cowextsize()
1961 sc->ip->i_diflags2 &= ~XFS_DIFLAG2_COWEXTSIZE; in xrep_inode_cowextsize()
1968 struct xfs_scrub *sc) in xrep_inode_problems() argument
1972 error = xrep_inode_blockcounts(sc); in xrep_inode_problems()
1975 error = xrep_inode_pptr(sc); in xrep_inode_problems()
1978 xrep_inode_timestamps(sc->ip); in xrep_inode_problems()
1979 xrep_inode_flags(sc); in xrep_inode_problems()
1980 xrep_inode_ids(sc); in xrep_inode_problems()
1985 if (S_ISDIR(VFS_I(sc->ip)->i_mode)) in xrep_inode_problems()
1986 xrep_inode_dir_size(sc); in xrep_inode_problems()
1987 xrep_inode_extsize(sc); in xrep_inode_problems()
1988 xrep_inode_cowextsize(sc); in xrep_inode_problems()
1990 trace_xrep_inode_fixed(sc); in xrep_inode_problems()
1991 xfs_trans_log_inode(sc->tp, sc->ip, XFS_ILOG_CORE); in xrep_inode_problems()
1992 return xrep_roll_trans(sc); in xrep_inode_problems()
2001 struct xfs_scrub *sc) in xrep_inode_unlinked() argument
2003 unsigned int nlink = VFS_I(sc->ip)->i_nlink; in xrep_inode_unlinked()
2010 if (nlink > 0 && xfs_inode_on_unlinked_list(sc->ip)) { in xrep_inode_unlinked()
2014 pag = xfs_perag_get(sc->mp, in xrep_inode_unlinked()
2015 XFS_INO_TO_AGNO(sc->mp, sc->ip->i_ino)); in xrep_inode_unlinked()
2016 error = xfs_iunlink_remove(sc->tp, pag, sc->ip); in xrep_inode_unlinked()
2026 if (nlink == 0 && !xfs_inode_on_unlinked_list(sc->ip)) { in xrep_inode_unlinked()
2027 error = xfs_iunlink(sc->tp, sc->ip); in xrep_inode_unlinked()
2038 struct xfs_scrub *sc) in xrep_inode() argument
2046 if (!sc->ip) { in xrep_inode()
2047 struct xrep_inode *ri = sc->buf; in xrep_inode()
2063 if (!sc->ip) in xrep_inode()
2067 xfs_trans_ijoin(sc->tp, sc->ip, 0); in xrep_inode()
2070 if ((sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) || in xrep_inode()
2071 (sc->sm->sm_flags & XFS_SCRUB_OFLAG_XCORRUPT)) { in xrep_inode()
2072 error = xrep_inode_problems(sc); in xrep_inode()
2078 if (xfs_is_reflink_inode(sc->ip)) { in xrep_inode()
2079 error = xfs_reflink_clear_inode_flag(sc->ip, &sc->tp); in xrep_inode()
2085 error = xrep_inode_unlinked(sc); in xrep_inode()
2089 return xrep_defer_finish(sc); in xrep_inode()