Lines Matching defs:sc

37 	struct xfs_scrub	*sc)
39 struct xfs_mount *mp = sc->mp;
45 agno = sc->sm->sm_agno;
49 error = xfs_sb_get_secondary(mp, sc->tp, agno, &bp);
54 if (xchk_should_terminate(sc, &error))
74 xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_SB_BUF);
75 xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1);
82 struct xfs_scrub *sc;
97 if (xchk_should_terminate(raa->sc, &error))
113 struct xfs_scrub *sc = priv;
115 if (!xfs_verify_agbno(sc->sa.pag, agbno))
136 struct xfs_scrub *sc,
139 return xfs_verify_agbno(sc->sa.pag, fab->root) &&
154 struct xfs_scrub *sc,
163 error = xrep_find_ag_btree_roots(sc, agf_bp, fab, agfl_bp);
168 if (!xrep_check_btree_root(sc, &fab[XREP_AGF_BNOBT]) ||
169 !xrep_check_btree_root(sc, &fab[XREP_AGF_CNTBT]) ||
170 !xrep_check_btree_root(sc, &fab[XREP_AGF_RMAPBT]))
181 if (xfs_has_reflink(sc->mp) &&
182 !xrep_check_btree_root(sc, &fab[XREP_AGF_REFCOUNTBT]))
194 struct xfs_scrub *sc,
198 struct xfs_mount *mp = sc->mp;
199 struct xfs_perag *pag = sc->sa.pag;
222 struct xfs_scrub *sc,
235 if (xfs_has_reflink(sc->mp)) {
246 struct xfs_scrub *sc,
249 struct xrep_agf_allocbt raa = { .sc = sc };
252 struct xfs_mount *mp = sc->mp;
258 cur = xfs_bnobt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
271 cur = xfs_cntbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
279 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
291 cur = xfs_refcountbt_init_cursor(mp, sc->tp, agf_bp,
292 sc->sa.pag);
309 struct xfs_scrub *sc,
316 xfs_force_summary_recalc(sc->mp);
319 xfs_trans_buf_set_type(sc->tp, agf_bp, XFS_BLFT_AGF_BUF);
320 xfs_trans_log_buf(sc->tp, agf_bp, 0, BBTOB(agf_bp->b_length) - 1);
323 pag = sc->sa.pag;
333 return xrep_roll_ag_trans(sc);
339 struct xfs_scrub *sc)
345 .maxlevels = sc->mp->m_alloc_maxlevels,
350 .maxlevels = sc->mp->m_alloc_maxlevels,
355 .maxlevels = sc->mp->m_rmap_maxlevels,
360 .maxlevels = sc->mp->m_refc_maxlevels,
367 struct xfs_mount *mp = sc->mp;
381 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
382 XFS_AG_DADDR(mp, sc->sa.pag->pag_agno,
399 error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &agfl_bp);
407 error = xfs_agfl_walk(sc->mp, agf_bp->b_addr, agfl_bp,
408 xrep_agf_check_agfl_block, sc);
416 error = xrep_agf_find_btrees(sc, agf_bp, fab, agfl_bp);
421 if (xchk_should_terminate(sc, &error))
425 xrep_agf_init_header(sc, agf_bp, &old_agf);
426 xrep_agf_set_roots(sc, agf, fab);
427 error = xrep_agf_calc_from_btrees(sc, agf_bp);
432 return xrep_agf_commit_new(sc, agf_bp);
436 clear_bit(XFS_AGSTATE_AGF_INIT, &sc->sa.pag->pag_opstate);
456 struct xfs_scrub *sc;
469 if (xchk_should_terminate(ra->sc, &error))
508 if (xchk_should_terminate(ra->sc, &error))
527 struct xfs_scrub *sc,
533 struct xfs_mount *mp = sc->mp;
537 ra.sc = sc;
543 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
550 cur = xfs_bnobt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
557 cur = xfs_cntbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
572 ra.rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
597 struct xfs_scrub *sc,
603 ASSERT(flcount <= xfs_agfl_size(sc->mp));
606 xfs_force_summary_recalc(sc->mp);
609 if (xfs_perag_initialised_agf(sc->sa.pag)) {
610 sc->sa.pag->pagf_flcount = flcount;
612 &sc->sa.pag->pag_opstate);
619 agf->agf_fllast = cpu_to_be32(xfs_agfl_size(sc->mp) - 1);
621 xfs_alloc_log_agf(sc->tp, agf_bp,
627 struct xfs_scrub *sc;
641 struct xfs_scrub *sc = af->sc;
645 trace_xrep_agfl_insert(sc->sa.pag, agbno, len);
663 struct xfs_scrub *sc,
669 .sc = sc,
672 struct xfs_mount *mp = sc->mp;
685 agfl->agfl_seqno = cpu_to_be32(sc->sa.pag->pag_agno);
701 xfs_trans_buf_set_type(sc->tp, agfl_bp, XFS_BLFT_AGFL_BUF);
702 xfs_trans_log_buf(sc->tp, agfl_bp, 0, BBTOB(agfl_bp->b_length) - 1);
710 struct xfs_scrub *sc)
713 struct xfs_mount *mp = sc->mp;
730 error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &agf_bp);
738 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
739 XFS_AG_DADDR(mp, sc->sa.pag->pag_agno,
747 error = xrep_agfl_collect_blocks(sc, agf_bp, &agfl_extents, &flcount);
752 if (xchk_should_terminate(sc, &error))
760 xrep_agfl_update_agf(sc, agf_bp, flcount);
761 error = xrep_agfl_init_header(sc, agfl_bp, &agfl_extents, flcount);
770 sc->sa.agf_bp = agf_bp;
771 error = xrep_roll_ag_trans(sc);
776 error = xrep_reap_agblocks(sc, &agfl_extents, &XFS_RMAP_OINFO_AG,
805 struct xfs_scrub *sc,
809 struct xfs_mount *mp = sc->mp;
813 error = xfs_alloc_read_agf(sc->sa.pag, sc->tp, 0, &agf_bp);
818 error = xrep_find_ag_btree_roots(sc, agf_bp, fab, NULL);
823 if (!xrep_check_btree_root(sc, &fab[XREP_AGI_INOBT]))
828 !xrep_check_btree_root(sc, &fab[XREP_AGI_FINOBT]))
840 struct xfs_scrub *sc,
845 struct xfs_perag *pag = sc->sa.pag;
846 struct xfs_mount *mp = sc->mp;
871 struct xfs_scrub *sc,
878 if (xfs_has_finobt(sc->mp)) {
887 struct xfs_scrub *sc,
892 struct xfs_mount *mp = sc->mp;
897 cur = xfs_inobt_init_cursor(sc->sa.pag, sc->tp, agi_bp);
917 cur = xfs_finobt_init_cursor(sc->sa.pag, sc->tp, agi_bp);
934 struct xfs_scrub *sc,
941 xfs_force_summary_recalc(sc->mp);
944 xfs_trans_buf_set_type(sc->tp, agi_bp, XFS_BLFT_AGI_BUF);
945 xfs_trans_log_buf(sc->tp, agi_bp, 0, BBTOB(agi_bp->b_length) - 1);
948 pag = sc->sa.pag;
953 return xrep_roll_ag_trans(sc);
959 struct xfs_scrub *sc)
965 .maxlevels = M_IGEO(sc->mp)->inobt_maxlevels,
970 .maxlevels = M_IGEO(sc->mp)->inobt_maxlevels,
977 struct xfs_mount *mp = sc->mp;
990 error = xfs_trans_read_buf(mp, sc->tp, mp->m_ddev_targp,
991 XFS_AG_DADDR(mp, sc->sa.pag->pag_agno,
1000 error = xrep_agi_find_btrees(sc, fab);
1005 if (xchk_should_terminate(sc, &error))
1009 xrep_agi_init_header(sc, agi_bp, &old_agi);
1010 xrep_agi_set_roots(sc, agi, fab);
1011 error = xrep_agi_calc_from_btrees(sc, agi_bp);
1016 return xrep_agi_commit_new(sc, agi_bp);
1020 clear_bit(XFS_AGSTATE_AGI_INIT, &sc->sa.pag->pag_opstate);