• Home
  • Raw
  • Download

Lines Matching refs:sc

65 	struct xfs_scrub	*sc,  in __xchk_process_error()  argument
77 trace_xchk_deadlock_retry(sc->ip, sc->sm, *error); in __xchk_process_error()
82 sc->sm->sm_flags |= errflag; in __xchk_process_error()
86 trace_xchk_op_error(sc, agno, bno, *error, in __xchk_process_error()
95 struct xfs_scrub *sc, in xchk_process_error() argument
100 return __xchk_process_error(sc, agno, bno, error, in xchk_process_error()
106 struct xfs_scrub *sc, in xchk_xref_process_error() argument
111 return __xchk_process_error(sc, agno, bno, error, in xchk_xref_process_error()
118 struct xfs_scrub *sc, in __xchk_fblock_process_error() argument
130 trace_xchk_deadlock_retry(sc->ip, sc->sm, *error); in __xchk_fblock_process_error()
135 sc->sm->sm_flags |= errflag; in __xchk_fblock_process_error()
139 trace_xchk_file_op_error(sc, whichfork, offset, *error, in __xchk_fblock_process_error()
148 struct xfs_scrub *sc, in xchk_fblock_process_error() argument
153 return __xchk_fblock_process_error(sc, whichfork, offset, error, in xchk_fblock_process_error()
159 struct xfs_scrub *sc, in xchk_fblock_xref_process_error() argument
164 return __xchk_fblock_process_error(sc, whichfork, offset, error, in xchk_fblock_xref_process_error()
183 struct xfs_scrub *sc, in xchk_block_set_preen() argument
186 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN; in xchk_block_set_preen()
187 trace_xchk_block_preen(sc, bp->b_bn, __return_address); in xchk_block_set_preen()
197 struct xfs_scrub *sc, in xchk_ino_set_preen() argument
200 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_PREEN; in xchk_ino_set_preen()
201 trace_xchk_ino_preen(sc, ino, __return_address); in xchk_ino_set_preen()
207 struct xfs_scrub *sc) in xchk_set_corrupt() argument
209 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xchk_set_corrupt()
210 trace_xchk_fs_error(sc, 0, __return_address); in xchk_set_corrupt()
216 struct xfs_scrub *sc, in xchk_block_set_corrupt() argument
219 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xchk_block_set_corrupt()
220 trace_xchk_block_error(sc, bp->b_bn, __return_address); in xchk_block_set_corrupt()
226 struct xfs_scrub *sc, in xchk_block_xref_set_corrupt() argument
229 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT; in xchk_block_xref_set_corrupt()
230 trace_xchk_block_error(sc, bp->b_bn, __return_address); in xchk_block_xref_set_corrupt()
240 struct xfs_scrub *sc, in xchk_ino_set_corrupt() argument
243 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xchk_ino_set_corrupt()
244 trace_xchk_ino_error(sc, ino, __return_address); in xchk_ino_set_corrupt()
250 struct xfs_scrub *sc, in xchk_ino_xref_set_corrupt() argument
253 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT; in xchk_ino_xref_set_corrupt()
254 trace_xchk_ino_error(sc, ino, __return_address); in xchk_ino_xref_set_corrupt()
260 struct xfs_scrub *sc, in xchk_fblock_set_corrupt() argument
264 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xchk_fblock_set_corrupt()
265 trace_xchk_fblock_error(sc, whichfork, offset, __return_address); in xchk_fblock_set_corrupt()
271 struct xfs_scrub *sc, in xchk_fblock_xref_set_corrupt() argument
275 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XCORRUPT; in xchk_fblock_xref_set_corrupt()
276 trace_xchk_fblock_error(sc, whichfork, offset, __return_address); in xchk_fblock_xref_set_corrupt()
285 struct xfs_scrub *sc, in xchk_ino_set_warning() argument
288 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_WARNING; in xchk_ino_set_warning()
289 trace_xchk_ino_warning(sc, ino, __return_address); in xchk_ino_set_warning()
295 struct xfs_scrub *sc, in xchk_fblock_set_warning() argument
299 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_WARNING; in xchk_fblock_set_warning()
300 trace_xchk_fblock_warning(sc, whichfork, offset, __return_address); in xchk_fblock_set_warning()
306 struct xfs_scrub *sc) in xchk_set_incomplete() argument
308 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_INCOMPLETE; in xchk_set_incomplete()
309 trace_xchk_incomplete(sc, __return_address); in xchk_set_incomplete()
350 struct xfs_scrub *sc, in xchk_count_rmap_ownedby_ag() argument
376 struct xfs_scrub *sc, in want_ag_read_header_failure() argument
380 if (sc->sm->sm_type != XFS_SCRUB_TYPE_AGF && in want_ag_read_header_failure()
381 sc->sm->sm_type != XFS_SCRUB_TYPE_AGFL && in want_ag_read_header_failure()
382 sc->sm->sm_type != XFS_SCRUB_TYPE_AGI) in want_ag_read_header_failure()
389 if (sc->sm->sm_type == type) in want_ag_read_header_failure()
403 struct xfs_scrub *sc, in xchk_ag_read_headers() argument
409 struct xfs_mount *mp = sc->mp; in xchk_ag_read_headers()
412 error = xfs_ialloc_read_agi(mp, sc->tp, agno, agi); in xchk_ag_read_headers()
413 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGI)) in xchk_ag_read_headers()
416 error = xfs_alloc_read_agf(mp, sc->tp, agno, 0, agf); in xchk_ag_read_headers()
417 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGF)) in xchk_ag_read_headers()
420 error = xfs_alloc_read_agfl(mp, sc->tp, agno, agfl); in xchk_ag_read_headers()
421 if (error && want_ag_read_header_failure(sc, XFS_SCRUB_TYPE_AGFL)) in xchk_ag_read_headers()
457 struct xfs_scrub *sc, in xchk_ag_btcur_init() argument
460 struct xfs_mount *mp = sc->mp; in xchk_ag_btcur_init()
463 xchk_perag_get(sc->mp, sa); in xchk_ag_btcur_init()
465 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_BNO)) { in xchk_ag_btcur_init()
467 sa->bno_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp, in xchk_ag_btcur_init()
474 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_CNT)) { in xchk_ag_btcur_init()
476 sa->cnt_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp, in xchk_ag_btcur_init()
484 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_INO)) { in xchk_ag_btcur_init()
485 sa->ino_cur = xfs_inobt_init_cursor(mp, sc->tp, sa->agi_bp, in xchk_ag_btcur_init()
493 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_FINO)) { in xchk_ag_btcur_init()
494 sa->fino_cur = xfs_inobt_init_cursor(mp, sc->tp, sa->agi_bp, in xchk_ag_btcur_init()
502 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_RMAP)) { in xchk_ag_btcur_init()
503 sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, sa->agf_bp, in xchk_ag_btcur_init()
511 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_REFC)) { in xchk_ag_btcur_init()
512 sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp, in xchk_ag_btcur_init()
526 struct xfs_scrub *sc, in xchk_ag_free() argument
531 xfs_trans_brelse(sc->tp, sa->agfl_bp); in xchk_ag_free()
535 xfs_trans_brelse(sc->tp, sa->agf_bp); in xchk_ag_free()
539 xfs_trans_brelse(sc->tp, sa->agi_bp); in xchk_ag_free()
558 struct xfs_scrub *sc, in xchk_ag_init() argument
565 error = xchk_ag_read_headers(sc, agno, &sa->agi_bp, in xchk_ag_init()
570 return xchk_ag_btcur_init(sc, sa); in xchk_ag_init()
600 struct xfs_scrub *sc, in xchk_trans_alloc() argument
603 if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR) in xchk_trans_alloc()
604 return xfs_trans_alloc(sc->mp, &M_RES(sc->mp)->tr_itruncate, in xchk_trans_alloc()
605 resblks, 0, 0, &sc->tp); in xchk_trans_alloc()
607 return xfs_trans_alloc_empty(sc->mp, &sc->tp); in xchk_trans_alloc()
613 struct xfs_scrub *sc, in xchk_setup_fs() argument
618 resblks = xrep_calc_ag_resblks(sc); in xchk_setup_fs()
619 return xchk_trans_alloc(sc, resblks); in xchk_setup_fs()
625 struct xfs_scrub *sc, in xchk_setup_ag_btree() argument
629 struct xfs_mount *mp = sc->mp; in xchk_setup_ag_btree()
644 error = xchk_setup_fs(sc, ip); in xchk_setup_ag_btree()
648 return xchk_ag_init(sc, sc->sm->sm_agno, &sc->sa); in xchk_setup_ag_btree()
672 struct xfs_scrub *sc, in xchk_get_inode() argument
676 struct xfs_mount *mp = sc->mp; in xchk_get_inode()
681 if (sc->sm->sm_ino == 0 || sc->sm->sm_ino == ip_in->i_ino) { in xchk_get_inode()
682 sc->ip = ip_in; in xchk_get_inode()
687 if (xfs_internal_inum(mp, sc->sm->sm_ino)) in xchk_get_inode()
689 error = xfs_iget(mp, NULL, sc->sm->sm_ino, in xchk_get_inode()
711 error = xfs_imap(sc->mp, sc->tp, sc->sm->sm_ino, &imap, in xchk_get_inode()
718 trace_xchk_op_error(sc, in xchk_get_inode()
719 XFS_INO_TO_AGNO(mp, sc->sm->sm_ino), in xchk_get_inode()
720 XFS_INO_TO_AGBNO(mp, sc->sm->sm_ino), in xchk_get_inode()
724 if (VFS_I(ip)->i_generation != sc->sm->sm_gen) { in xchk_get_inode()
729 sc->ip = ip; in xchk_get_inode()
736 struct xfs_scrub *sc, in xchk_setup_inode_contents() argument
742 error = xchk_get_inode(sc, ip); in xchk_setup_inode_contents()
747 sc->ilock_flags = XFS_IOLOCK_EXCL | XFS_MMAPLOCK_EXCL; in xchk_setup_inode_contents()
748 xfs_ilock(sc->ip, sc->ilock_flags); in xchk_setup_inode_contents()
749 error = xchk_trans_alloc(sc, resblks); in xchk_setup_inode_contents()
752 sc->ilock_flags |= XFS_ILOCK_EXCL; in xchk_setup_inode_contents()
753 xfs_ilock(sc->ip, XFS_ILOCK_EXCL); in xchk_setup_inode_contents()
767 struct xfs_scrub *sc, in xchk_should_check_xref() argument
772 if (xchk_skip_xref(sc->sm)) in xchk_should_check_xref()
788 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_XFAIL; in xchk_should_check_xref()
789 trace_xchk_xref_error(sc, *error, __return_address); in xchk_should_check_xref()
802 struct xfs_scrub *sc, in xchk_buffer_recheck() argument
808 xchk_block_set_corrupt(sc, bp); in xchk_buffer_recheck()
812 xchk_set_incomplete(sc); in xchk_buffer_recheck()
818 sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT; in xchk_buffer_recheck()
819 trace_xchk_block_error(sc, bp->b_bn, fa); in xchk_buffer_recheck()
828 struct xfs_scrub *sc) in xchk_metadata_inode_forks() argument
834 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) in xchk_metadata_inode_forks()
838 if (sc->ip->i_d.di_flags & XFS_DIFLAG_REALTIME) { in xchk_metadata_inode_forks()
839 xchk_ino_set_corrupt(sc, sc->ip->i_ino); in xchk_metadata_inode_forks()
844 if (xfs_is_reflink_inode(sc->ip)) { in xchk_metadata_inode_forks()
845 xchk_ino_set_corrupt(sc, sc->ip->i_ino); in xchk_metadata_inode_forks()
850 if (xfs_inode_hasattr(sc->ip)) { in xchk_metadata_inode_forks()
851 xchk_ino_set_corrupt(sc, sc->ip->i_ino); in xchk_metadata_inode_forks()
856 smtype = sc->sm->sm_type; in xchk_metadata_inode_forks()
857 sc->sm->sm_type = XFS_SCRUB_TYPE_BMBTD; in xchk_metadata_inode_forks()
858 error = xchk_bmap_data(sc); in xchk_metadata_inode_forks()
859 sc->sm->sm_type = smtype; in xchk_metadata_inode_forks()
860 if (error || (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) in xchk_metadata_inode_forks()
864 if (xfs_sb_version_hasreflink(&sc->mp->m_sb)) { in xchk_metadata_inode_forks()
865 error = xfs_reflink_inode_has_shared_extents(sc->tp, sc->ip, in xchk_metadata_inode_forks()
867 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, 0, in xchk_metadata_inode_forks()
871 xchk_ino_set_corrupt(sc, sc->ip->i_ino); in xchk_metadata_inode_forks()
902 struct xfs_scrub *sc) in xchk_stop_reaping() argument
904 sc->flags |= XCHK_REAPING_DISABLED; in xchk_stop_reaping()
905 xfs_stop_block_reaping(sc->mp); in xchk_stop_reaping()
911 struct xfs_scrub *sc) in xchk_start_reaping() argument
913 xfs_start_block_reaping(sc->mp); in xchk_start_reaping()
914 sc->flags &= ~XCHK_REAPING_DISABLED; in xchk_start_reaping()