Lines Matching defs:sc

28 	struct xfs_scrub	*sc)
30 return xchk_setup_inode_contents(sc, 0);
40 struct xfs_scrub *sc,
45 struct xfs_mount *mp = sc->mp;
49 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
54 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
65 struct xfs_scrub *sc,
81 if (xchk_should_terminate(sc, &error))
86 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
92 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
99 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
106 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
110 error = xchk_dir_lookup(sc, dp, name, &lookup_ino);
114 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, offset, &error))
117 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, offset);
130 error = xchk_iget(sc, ino, &ip);
133 xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, &error);
136 if (!xchk_fblock_xref_process_error(sc, XFS_DATA_FORK, offset, &error))
139 xchk_dir_check_ftype(sc, offset, ip, name->type);
140 xchk_irele(sc, ip);
142 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
201 if (!xchk_fblock_process_error(ds->sc, XFS_DATA_FORK, rec_bno,
205 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
208 xchk_buffer_recheck(ds->sc, bp);
210 if (ds->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
219 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
227 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
245 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
247 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
256 xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
271 struct xfs_scrub *sc,
290 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
296 struct xfs_scrub *sc,
304 struct xfs_mount *mp = sc->mp;
317 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
318 error = xfs_dir3_block_read(sc->tp, sc->ip, &bp);
321 error = xfs_dir3_data_read(sc->tp, sc->ip, lblk, 0, &bp);
323 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
325 xchk_buffer_recheck(sc, bp);
329 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
340 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
350 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
356 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
378 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
389 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
397 xchk_directory_check_free_entry(sc, lblk, bf, dup);
398 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
404 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
414 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
418 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
420 xfs_trans_brelse(sc->tp, bp);
433 struct xfs_scrub *sc,
440 dfp = xfs_dir2_data_bestfree_p(sc->mp, dbp->b_addr);
443 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
446 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
452 struct xfs_scrub *sc,
462 struct xfs_da_geometry *geo = sc->mp->m_dir_geo;
473 error = xfs_dir3_leaf_read(sc->tp, sc->ip, lblk, &bp);
474 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
476 xchk_buffer_recheck(sc, bp);
479 xfs_dir2_leaf_hdr_from_disk(sc->ip->i_mount, &leafhdr, leaf);
484 if (xfs_has_crc(sc->mp)) {
488 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
500 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
506 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
512 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
520 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
527 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
528 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
534 error = xfs_dir3_data_read(sc->tp, sc->ip,
538 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk,
544 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
552 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
554 xchk_directory_check_freesp(sc, lblk, dbp, best);
555 xfs_trans_brelse(sc->tp, dbp);
556 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
560 xfs_trans_brelse(sc->tp, bp);
567 struct xfs_scrub *sc,
580 error = xfs_dir2_free_read(sc->tp, sc->ip, lblk, &bp);
581 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
583 xchk_buffer_recheck(sc, bp);
585 if (xfs_has_crc(sc->mp)) {
589 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
593 xfs_dir2_free_hdr_from_disk(sc->ip->i_mount, &freehdr, bp->b_addr);
600 error = xfs_dir3_data_read(sc->tp, sc->ip,
603 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk,
606 xchk_directory_check_freesp(sc, lblk, dbp, best);
607 xfs_trans_brelse(sc->tp, dbp);
611 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
613 xfs_trans_brelse(sc->tp, bp);
620 struct xfs_scrub *sc)
624 .dp = sc ->ip,
626 .geo = sc->mp->m_dir_geo,
627 .trans = sc->tp,
629 struct xfs_ifork *ifp = xfs_ifork_ptr(sc->ip, XFS_DATA_FORK);
630 struct xfs_mount *mp = sc->mp;
652 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, lblk, &error))
656 found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
657 while (found && !(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
678 error = xchk_directory_data_bestfree(sc, lblk,
685 found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
688 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
692 if (xfs_iext_lookup_extent(sc->ip, ifp, leaf_lblk, &icur, &got) &&
697 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
700 error = xchk_directory_leaf1_bestfree(sc, &args, last_data_db,
706 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
711 found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
712 while (found && !(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
719 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
723 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, lblk);
742 error = xchk_directory_free_bestfree(sc, &args,
749 found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
758 struct xfs_scrub *sc)
762 if (!S_ISDIR(VFS_I(sc->ip)->i_mode))
765 if (xchk_file_looks_zapped(sc, XFS_SICK_INO_DIR_ZAPPED)) {
766 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, 0);
771 if (sc->ip->i_disk_size < xfs_dir2_sf_hdr_size(0)) {
772 xchk_ino_set_corrupt(sc, sc->ip->i_ino);
777 error = xchk_da_btree(sc, XFS_DATA_FORK, xchk_dir_rec, NULL);
781 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
785 error = xchk_directory_blocks(sc);
789 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
793 error = xchk_dir_walk(sc, sc->ip, xchk_dir_actor, NULL);
798 xchk_mark_healthy_if_clean(sc, XFS_SICK_INO_DIR_ZAPPED);