Lines Matching refs:sc
34 struct xfs_scrub *sc) in xrep_superblock() argument
36 struct xfs_mount *mp = sc->mp; in xrep_superblock()
42 agno = sc->sm->sm_agno; in xrep_superblock()
46 error = xfs_sb_get_secondary(mp, sc->tp, agno, &bp); in xrep_superblock()
55 xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_SB_BUF); in xrep_superblock()
56 xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1); in xrep_superblock()
63 struct xfs_scrub *sc; member
78 if (xchk_should_terminate(raa->sc, &error)) in xrep_agf_walk_allocbt()
94 struct xfs_scrub *sc = priv; in xrep_agf_check_agfl_block() local
96 if (!xfs_verify_agbno(mp, sc->sa.agno, agbno)) in xrep_agf_check_agfl_block()
117 struct xfs_scrub *sc, in xrep_check_btree_root() argument
120 struct xfs_mount *mp = sc->mp; in xrep_check_btree_root()
121 xfs_agnumber_t agno = sc->sm->sm_agno; in xrep_check_btree_root()
138 struct xfs_scrub *sc, in xrep_agf_find_btrees() argument
147 error = xrep_find_ag_btree_roots(sc, agf_bp, fab, agfl_bp); in xrep_agf_find_btrees()
152 if (!xrep_check_btree_root(sc, &fab[XREP_AGF_BNOBT]) || in xrep_agf_find_btrees()
153 !xrep_check_btree_root(sc, &fab[XREP_AGF_CNTBT]) || in xrep_agf_find_btrees()
154 !xrep_check_btree_root(sc, &fab[XREP_AGF_RMAPBT])) in xrep_agf_find_btrees()
166 if (xfs_sb_version_hasreflink(&sc->mp->m_sb) && in xrep_agf_find_btrees()
167 !xrep_check_btree_root(sc, &fab[XREP_AGF_REFCOUNTBT])) in xrep_agf_find_btrees()
179 struct xfs_scrub *sc, in xrep_agf_init_header() argument
183 struct xfs_mount *mp = sc->mp; in xrep_agf_init_header()
190 agf->agf_seqno = cpu_to_be32(sc->sa.agno); in xrep_agf_init_header()
191 agf->agf_length = cpu_to_be32(xfs_ag_block_count(mp, sc->sa.agno)); in xrep_agf_init_header()
199 ASSERT(sc->sa.pag->pagf_init); in xrep_agf_init_header()
200 sc->sa.pag->pagf_init = 0; in xrep_agf_init_header()
206 struct xfs_scrub *sc, in xrep_agf_set_roots() argument
225 if (xfs_sb_version_hasreflink(&sc->mp->m_sb)) { in xrep_agf_set_roots()
236 struct xfs_scrub *sc, in xrep_agf_calc_from_btrees() argument
239 struct xrep_agf_allocbt raa = { .sc = sc }; in xrep_agf_calc_from_btrees()
242 struct xfs_mount *mp = sc->mp; in xrep_agf_calc_from_btrees()
248 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno, in xrep_agf_calc_from_btrees()
262 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno, in xrep_agf_calc_from_btrees()
271 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno); in xrep_agf_calc_from_btrees()
283 cur = xfs_refcountbt_init_cursor(mp, sc->tp, agf_bp, in xrep_agf_calc_from_btrees()
284 sc->sa.agno); in xrep_agf_calc_from_btrees()
301 struct xfs_scrub *sc, in xrep_agf_commit_new() argument
308 xfs_force_summary_recalc(sc->mp); in xrep_agf_commit_new()
311 xfs_trans_buf_set_type(sc->tp, agf_bp, XFS_BLFT_AGF_BUF); in xrep_agf_commit_new()
312 xfs_trans_log_buf(sc->tp, agf_bp, 0, BBTOB(agf_bp->b_length) - 1); in xrep_agf_commit_new()
315 pag = sc->sa.pag; in xrep_agf_commit_new()
334 struct xfs_scrub *sc) in xrep_agf() argument
358 struct xfs_mount *mp = sc->mp; in xrep_agf()
368 xchk_perag_get(sc->mp, &sc->sa); in xrep_agf()
373 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp, in xrep_agf()
374 XFS_AG_DADDR(mp, sc->sa.agno, XFS_AGF_DADDR(mp)), in xrep_agf()
390 error = xfs_alloc_read_agfl(mp, sc->tp, sc->sa.agno, &agfl_bp); in xrep_agf()
398 error = xfs_agfl_walk(sc->mp, XFS_BUF_TO_AGF(agf_bp), agfl_bp, in xrep_agf()
399 xrep_agf_check_agfl_block, sc); in xrep_agf()
407 error = xrep_agf_find_btrees(sc, agf_bp, fab, agfl_bp); in xrep_agf()
412 xrep_agf_init_header(sc, agf_bp, &old_agf); in xrep_agf()
413 xrep_agf_set_roots(sc, agf, fab); in xrep_agf()
414 error = xrep_agf_calc_from_btrees(sc, agf_bp); in xrep_agf()
419 return xrep_agf_commit_new(sc, agf_bp); in xrep_agf()
423 sc->sa.pag->pagf_init = 0; in xrep_agf()
437 struct xfs_scrub *sc; member
451 if (xchk_should_terminate(ra->sc, &error)) in xrep_agfl_walk_rmap()
477 struct xfs_scrub *sc, in xrep_agfl_collect_blocks() argument
483 struct xfs_mount *mp = sc->mp; in xrep_agfl_collect_blocks()
489 ra.sc = sc; in xrep_agfl_collect_blocks()
494 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno); in xrep_agfl_collect_blocks()
501 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno, in xrep_agfl_collect_blocks()
509 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.agno, in xrep_agfl_collect_blocks()
549 struct xfs_scrub *sc, in xrep_agfl_update_agf() argument
555 ASSERT(flcount <= xfs_agfl_size(sc->mp)); in xrep_agfl_update_agf()
558 xfs_force_summary_recalc(sc->mp); in xrep_agfl_update_agf()
561 if (sc->sa.pag->pagf_init) in xrep_agfl_update_agf()
562 sc->sa.pag->pagf_flcount = flcount; in xrep_agfl_update_agf()
567 xfs_alloc_log_agf(sc->tp, agf_bp, in xrep_agfl_update_agf()
574 struct xfs_scrub *sc, in xrep_agfl_init_header() argument
579 struct xfs_mount *mp = sc->mp; in xrep_agfl_init_header()
596 agfl->agfl_seqno = cpu_to_be32(sc->sa.agno); in xrep_agfl_init_header()
609 trace_xrep_agfl_insert(mp, sc->sa.agno, agbno, br->len); in xrep_agfl_init_header()
631 xfs_trans_buf_set_type(sc->tp, agfl_bp, XFS_BLFT_AGFL_BUF); in xrep_agfl_init_header()
632 xfs_trans_log_buf(sc->tp, agfl_bp, 0, BBTOB(agfl_bp->b_length) - 1); in xrep_agfl_init_header()
638 struct xfs_scrub *sc) in xrep_agfl() argument
641 struct xfs_mount *mp = sc->mp; in xrep_agfl()
651 xchk_perag_get(sc->mp, &sc->sa); in xrep_agfl()
659 error = xfs_alloc_read_agf(mp, sc->tp, sc->sa.agno, 0, &agf_bp); in xrep_agfl()
669 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp, in xrep_agfl()
670 XFS_AG_DADDR(mp, sc->sa.agno, XFS_AGFL_DADDR(mp)), in xrep_agfl()
677 error = xrep_agfl_collect_blocks(sc, agf_bp, &agfl_extents, &flcount); in xrep_agfl()
686 xrep_agfl_update_agf(sc, agf_bp, flcount); in xrep_agfl()
687 xrep_agfl_init_header(sc, agfl_bp, &agfl_extents, flcount); in xrep_agfl()
694 sc->sa.agf_bp = agf_bp; in xrep_agfl()
695 sc->sa.agfl_bp = agfl_bp; in xrep_agfl()
696 error = xrep_roll_ag_trans(sc); in xrep_agfl()
701 return xrep_reap_extents(sc, &agfl_extents, &XFS_RMAP_OINFO_AG, in xrep_agfl()
727 struct xfs_scrub *sc, in xrep_agi_find_btrees() argument
731 struct xfs_mount *mp = sc->mp; in xrep_agi_find_btrees()
735 error = xfs_alloc_read_agf(mp, sc->tp, sc->sa.agno, 0, &agf_bp); in xrep_agi_find_btrees()
742 error = xrep_find_ag_btree_roots(sc, agf_bp, fab, NULL); in xrep_agi_find_btrees()
747 if (!xrep_check_btree_root(sc, &fab[XREP_AGI_INOBT])) in xrep_agi_find_btrees()
752 !xrep_check_btree_root(sc, &fab[XREP_AGI_FINOBT])) in xrep_agi_find_btrees()
764 struct xfs_scrub *sc, in xrep_agi_init_header() argument
769 struct xfs_mount *mp = sc->mp; in xrep_agi_init_header()
775 agi->agi_seqno = cpu_to_be32(sc->sa.agno); in xrep_agi_init_header()
776 agi->agi_length = cpu_to_be32(xfs_ag_block_count(mp, sc->sa.agno)); in xrep_agi_init_header()
787 ASSERT(sc->sa.pag->pagi_init); in xrep_agi_init_header()
788 sc->sa.pag->pagi_init = 0; in xrep_agi_init_header()
794 struct xfs_scrub *sc, in xrep_agi_set_roots() argument
801 if (xfs_sb_version_hasfinobt(&sc->mp->m_sb)) { in xrep_agi_set_roots()
810 struct xfs_scrub *sc, in xrep_agi_calc_from_btrees() argument
815 struct xfs_mount *mp = sc->mp; in xrep_agi_calc_from_btrees()
820 cur = xfs_inobt_init_cursor(mp, sc->tp, agi_bp, sc->sa.agno, in xrep_agi_calc_from_btrees()
838 struct xfs_scrub *sc, in xrep_agi_commit_new() argument
845 xfs_force_summary_recalc(sc->mp); in xrep_agi_commit_new()
848 xfs_trans_buf_set_type(sc->tp, agi_bp, XFS_BLFT_AGI_BUF); in xrep_agi_commit_new()
849 xfs_trans_log_buf(sc->tp, agi_bp, 0, BBTOB(agi_bp->b_length) - 1); in xrep_agi_commit_new()
852 pag = sc->sa.pag; in xrep_agi_commit_new()
863 struct xfs_scrub *sc) in xrep_agi() argument
879 struct xfs_mount *mp = sc->mp; in xrep_agi()
888 xchk_perag_get(sc->mp, &sc->sa); in xrep_agi()
893 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp, in xrep_agi()
894 XFS_AG_DADDR(mp, sc->sa.agno, XFS_AGI_DADDR(mp)), in xrep_agi()
902 error = xrep_agi_find_btrees(sc, fab); in xrep_agi()
907 xrep_agi_init_header(sc, agi_bp, &old_agi); in xrep_agi()
908 xrep_agi_set_roots(sc, agi, fab); in xrep_agi()
909 error = xrep_agi_calc_from_btrees(sc, agi_bp); in xrep_agi()
914 return xrep_agi_commit_new(sc, agi_bp); in xrep_agi()
918 sc->sa.pag->pagi_init = 0; in xrep_agi()