Lines Matching refs:ri

148 	struct xrep_inode	*ri;
154 ri = sc->buf;
155 memcpy(&ri->imap, imap, sizeof(struct xfs_imap));
156 ri->sc = sc;
250 struct xrep_inode *ri = priv;
253 if (xchk_should_terminate(ri->sc, &error))
272 if (ri->alleged_ftype != XFS_DIR3_FT_UNKNOWN &&
273 ri->alleged_ftype != name->type) {
274 trace_xrep_dinode_findmode_dirent_inval(ri->sc, dp, name->type,
275 ri->alleged_ftype);
280 trace_xrep_dinode_findmode_dirent(ri->sc, dp, name->type);
281 ri->alleged_ftype = name->type;
291 struct xrep_inode *ri,
294 struct xfs_scrub *sc = ri->sc;
324 error = xchk_dir_walk(sc, dp, xrep_dinode_findmode_dirent, ri);
339 struct xrep_inode *ri,
342 struct xfs_scrub *sc = ri->sc;
358 xchk_iscan_start(sc, 5000, 100, &ri->ftype_iscan);
359 ri->ftype_iscan.skip_ino = sc->sm->sm_ino;
360 ri->alleged_ftype = XFS_DIR3_FT_UNKNOWN;
361 while ((error = xchk_iscan_iter(&ri->ftype_iscan, &dp)) == 1) {
363 error = xrep_dinode_findmode_walk_directory(ri, dp);
364 xchk_iscan_mark_visited(&ri->ftype_iscan, dp);
371 xchk_iscan_iter_finish(&ri->ftype_iscan);
372 xchk_iscan_teardown(&ri->ftype_iscan);
375 if (ri->alleged_ftype != XFS_DIR3_FT_UNKNOWN) {
399 switch (ri->alleged_ftype) {
429 struct xrep_inode *ri,
432 struct xfs_scrub *sc = ri->sc;
442 error = xrep_dinode_find_mode(ri, &mode);
462 ri->zap_acls = true;
514 struct xrep_inode *ri,
517 struct xfs_scrub *sc = ri->sc;
526 ri->ino_sick_mask |= XFS_SICK_INO_SYMLINK_ZAPPED;
537 struct xrep_inode *ri,
540 struct xfs_scrub *sc = ri->sc;
554 ri->ino_sick_mask |= XFS_SICK_INO_DIR_ZAPPED;
560 struct xrep_inode *ri,
563 struct xfs_scrub *sc = ri->sc;
591 xrep_dinode_zap_symlink(ri, dip);
603 xrep_dinode_zap_dir(ri, dip);
649 struct xrep_inode *ri = priv;
652 if (xchk_should_terminate(ri->sc, &error))
656 if (rec->rm_owner != ri->sc->sm->sm_ino)
660 ri->attr_blocks += rec->rm_blockcount;
662 ri->attr_extents++;
667 ri->data_blocks += rec->rm_blockcount;
669 ri->data_extents++;
677 struct xrep_inode *ri,
684 error = xfs_alloc_read_agf(pag, ri->sc->tp, 0, &agf);
688 cur = xfs_rmapbt_init_cursor(ri->sc->mp, ri->sc->tp, agf, pag);
689 error = xfs_rmap_query_all(cur, xrep_dinode_walk_rmap, ri);
691 xfs_trans_brelse(ri->sc->tp, agf);
698 struct xrep_inode *ri)
704 if (!xfs_has_rmapbt(ri->sc->mp) || xfs_has_realtime(ri->sc->mp))
707 for_each_perag(ri->sc->mp, agno, pag) {
708 error = xrep_dinode_count_ag_rmaps(ri, pag);
716 if (ri->data_extents && ri->rt_extents)
719 trace_xrep_dinode_count_rmaps(ri->sc,
720 ri->data_blocks, ri->rt_blocks, ri->attr_blocks,
721 ri->data_extents, ri->rt_extents, ri->attr_extents);
923 struct xrep_inode *ri,
927 struct xfs_scrub *sc = ri->sc;
931 ri->ino_sick_mask |= XFS_SICK_INO_BMBTD_ZAPPED;
934 ri->data_blocks = 0;
935 ri->rt_blocks = 0;
952 if (ri->data_extents || ri->rt_extents || S_ISREG(mode)) {
960 xrep_dinode_zap_symlink(ri, dip);
963 xrep_dinode_zap_dir(ri, dip);
1024 struct xrep_inode *ri,
1028 struct xfs_scrub *sc = ri->sc;
1032 ri->ino_sick_mask |= XFS_SICK_INO_BMBTA_ZAPPED;
1036 ri->attr_blocks = 0;
1053 struct xrep_inode *ri,
1058 struct xfs_scrub *sc = ri->sc;
1095 } else if (ri->attr_extents > 0) {
1146 } else if (ri->data_extents > 0 || ri->rt_extents > 0) {
1186 (ri->data_extents > 0 || ri->rt_extents > 0) &&
1193 xrep_dinode_zap_afork(ri, dip, mode);
1212 ri->attr_extents > 0 &&
1225 xrep_dinode_zap_afork(ri, dip, mode);
1244 struct xrep_inode *ri,
1247 struct xfs_scrub *sc = ri->sc;
1253 bool zap_attrfork = ri->zap_acls;
1278 xrep_dinode_zap_afork(ri, dip, mode);
1280 xrep_dinode_zap_dfork(ri, dip, mode);
1281 xrep_dinode_ensure_forkoff(ri, dip, mode);
1296 struct xrep_inode *ri)
1298 struct xfs_scrub *sc = ri->sc;
1306 error = xrep_dinode_count_rmaps(ri);
1312 ri->imap.im_blkno, ri->imap.im_len, XBF_UNMAPPED, &bp,
1322 dip = xfs_buf_offset(bp, ri->imap.im_boffset);
1324 iget_error = xrep_dinode_mode(ri, dip);
1327 xrep_dinode_flags(sc, dip, ri->rt_extents > 0);
1328 xrep_dinode_size(ri, dip);
1330 xrep_dinode_zap_forks(ri, dip);
1337 xfs_trans_log_buf(sc->tp, bp, ri->imap.im_boffset,
1338 ri->imap.im_boffset + sc->mp->m_sb.sb_inodesize - 1);
1374 if (ri->ino_sick_mask)
1375 xfs_inode_mark_sick(sc->ip, ri->ino_sick_mask);
1382 struct xrep_inode *ri)
1384 struct xfs_scrub *sc = ri->sc;
1387 error = xrep_dinode_core(ri);
1712 struct xrep_inode *ri = sc->buf;
1714 ASSERT(ri != NULL);
1716 error = xrep_dinode_problems(ri);