• Home
  • Raw
  • Download

Lines Matching refs:sc

41 	struct xfs_scrub	*sc)  in xrep_attempt()  argument
45 trace_xrep_attempt(XFS_I(file_inode(sc->file)), sc->sm, error); in xrep_attempt()
47 xchk_ag_btcur_free(&sc->sa); in xrep_attempt()
50 ASSERT(sc->ops->repair); in xrep_attempt()
51 error = sc->ops->repair(sc); in xrep_attempt()
52 trace_xrep_done(XFS_I(file_inode(sc->file)), sc->sm, error); in xrep_attempt()
59 sc->sm->sm_flags &= ~XFS_SCRUB_FLAGS_OUT; in xrep_attempt()
60 sc->flags |= XREP_ALREADY_FIXED; in xrep_attempt()
65 if (!(sc->flags & XCHK_TRY_HARDER)) { in xrep_attempt()
66 sc->flags |= XCHK_TRY_HARDER; in xrep_attempt()
103 struct xfs_scrub *sc) in xrep_probe() argument
107 if (xchk_should_terminate(sc, &error)) in xrep_probe()
119 struct xfs_scrub *sc) in xrep_roll_ag_trans() argument
124 if (sc->sa.agi_bp) in xrep_roll_ag_trans()
125 xfs_trans_bhold(sc->tp, sc->sa.agi_bp); in xrep_roll_ag_trans()
126 if (sc->sa.agf_bp) in xrep_roll_ag_trans()
127 xfs_trans_bhold(sc->tp, sc->sa.agf_bp); in xrep_roll_ag_trans()
128 if (sc->sa.agfl_bp) in xrep_roll_ag_trans()
129 xfs_trans_bhold(sc->tp, sc->sa.agfl_bp); in xrep_roll_ag_trans()
138 error = xfs_trans_roll(&sc->tp); in xrep_roll_ag_trans()
143 if (sc->sa.agi_bp) in xrep_roll_ag_trans()
144 xfs_trans_bjoin(sc->tp, sc->sa.agi_bp); in xrep_roll_ag_trans()
145 if (sc->sa.agf_bp) in xrep_roll_ag_trans()
146 xfs_trans_bjoin(sc->tp, sc->sa.agf_bp); in xrep_roll_ag_trans()
147 if (sc->sa.agfl_bp) in xrep_roll_ag_trans()
148 xfs_trans_bjoin(sc->tp, sc->sa.agfl_bp); in xrep_roll_ag_trans()
176 struct xfs_scrub *sc) in xrep_calc_ag_resblks() argument
178 struct xfs_mount *mp = sc->mp; in xrep_calc_ag_resblks()
179 struct xfs_scrub_metadata *sm = sc->sm; in xrep_calc_ag_resblks()
290 struct xfs_scrub *sc, in xrep_alloc_ag_block() argument
302 error = xfs_alloc_get_freelist(sc->tp, sc->sa.agf_bp, &bno, 1); in xrep_alloc_ag_block()
307 xfs_extent_busy_reuse(sc->mp, sc->sa.pag, bno, in xrep_alloc_ag_block()
309 *fsbno = XFS_AGB_TO_FSB(sc->mp, sc->sa.pag->pag_agno, bno); in xrep_alloc_ag_block()
311 xfs_ag_resv_rmapbt_alloc(sc->mp, sc->sa.pag->pag_agno); in xrep_alloc_ag_block()
317 args.tp = sc->tp; in xrep_alloc_ag_block()
318 args.mp = sc->mp; in xrep_alloc_ag_block()
320 args.fsbno = XFS_AGB_TO_FSB(args.mp, sc->sa.pag->pag_agno, 0); in xrep_alloc_ag_block()
341 struct xfs_scrub *sc, in xrep_init_btblock() argument
347 struct xfs_trans *tp = sc->tp; in xrep_init_btblock()
348 struct xfs_mount *mp = sc->mp; in xrep_init_btblock()
355 ASSERT(XFS_FSB_TO_AGNO(mp, fsb) == sc->sa.pag->pag_agno); in xrep_init_btblock()
362 xfs_btree_init_block(mp, bp, btnum, 0, 0, sc->sa.pag->pag_agno); in xrep_init_btblock()
442 struct xfs_scrub *sc, in xrep_invalidate_blocks() argument
460 if (!xfs_verify_fsbno(sc->mp, fsbno)) in xrep_invalidate_blocks()
462 bp = xfs_buf_incore(sc->mp->m_ddev_targp, in xrep_invalidate_blocks()
463 XFS_FSB_TO_DADDR(sc->mp, fsbno), in xrep_invalidate_blocks()
464 XFS_FSB_TO_BB(sc->mp, 1), XBF_TRYLOCK); in xrep_invalidate_blocks()
466 xfs_trans_bjoin(sc->tp, bp); in xrep_invalidate_blocks()
467 xfs_trans_binval(sc->tp, bp); in xrep_invalidate_blocks()
477 struct xfs_scrub *sc, in xrep_fix_freelist() argument
482 args.mp = sc->mp; in xrep_fix_freelist()
483 args.tp = sc->tp; in xrep_fix_freelist()
484 args.agno = sc->sa.pag->pag_agno; in xrep_fix_freelist()
486 args.pag = sc->sa.pag; in xrep_fix_freelist()
497 struct xfs_scrub *sc, in xrep_put_freelist() argument
503 error = xrep_fix_freelist(sc, true); in xrep_put_freelist()
512 error = xfs_rmap_alloc(sc->tp, sc->sa.agf_bp, sc->sa.pag, agbno, 1, in xrep_put_freelist()
518 error = xfs_alloc_put_freelist(sc->tp, sc->sa.agf_bp, sc->sa.agfl_bp, in xrep_put_freelist()
522 xfs_extent_busy_insert(sc->tp, sc->sa.pag, agbno, 1, in xrep_put_freelist()
531 struct xfs_scrub *sc, in xrep_reap_block() argument
543 agno = XFS_FSB_TO_AGNO(sc->mp, fsbno); in xrep_reap_block()
544 agbno = XFS_FSB_TO_AGBNO(sc->mp, fsbno); in xrep_reap_block()
551 if (sc->ip) { in xrep_reap_block()
552 error = xfs_alloc_read_agf(sc->mp, sc->tp, agno, 0, &agf_bp); in xrep_reap_block()
556 agf_bp = sc->sa.agf_bp; in xrep_reap_block()
558 cur = xfs_rmapbt_init_cursor(sc->mp, sc->tp, agf_bp, sc->sa.pag); in xrep_reap_block()
580 error = xfs_rmap_free(sc->tp, agf_bp, sc->sa.pag, agbno, in xrep_reap_block()
583 error = xrep_put_freelist(sc, agbno); in xrep_reap_block()
585 error = xfs_free_extent(sc->tp, fsbno, 1, oinfo, resv); in xrep_reap_block()
586 if (agf_bp != sc->sa.agf_bp) in xrep_reap_block()
587 xfs_trans_brelse(sc->tp, agf_bp); in xrep_reap_block()
591 if (sc->ip) in xrep_reap_block()
592 return xfs_trans_roll_inode(&sc->tp, sc->ip); in xrep_reap_block()
593 return xrep_roll_ag_trans(sc); in xrep_reap_block()
596 if (agf_bp != sc->sa.agf_bp) in xrep_reap_block()
597 xfs_trans_brelse(sc->tp, agf_bp); in xrep_reap_block()
604 struct xfs_scrub *sc, in xrep_reap_extents() argument
614 ASSERT(xfs_has_rmapbt(sc->mp)); in xrep_reap_extents()
617 ASSERT(sc->ip != NULL || in xrep_reap_extents()
618 XFS_FSB_TO_AGNO(sc->mp, fsbno) == sc->sa.pag->pag_agno); in xrep_reap_extents()
619 trace_xrep_dispose_btree_extent(sc->mp, in xrep_reap_extents()
620 XFS_FSB_TO_AGNO(sc->mp, fsbno), in xrep_reap_extents()
621 XFS_FSB_TO_AGBNO(sc->mp, fsbno), 1); in xrep_reap_extents()
623 error = xrep_reap_block(sc, fsbno, oinfo, type); in xrep_reap_extents()
659 struct xfs_scrub *sc; member
686 struct xfs_mount *mp = ri->sc->mp; in xrep_findroot_block()
693 daddr = XFS_AGB_TO_DADDR(mp, ri->sc->sa.pag->pag_agno, agbno); in xrep_findroot_block()
728 error = xfs_trans_read_buf(mp, ri->sc->tp, mp->m_ddev_targp, daddr, in xrep_findroot_block()
822 trace_xrep_findroot_block(mp, ri->sc->sa.pag->pag_agno, agbno, in xrep_findroot_block()
825 xfs_trans_brelse(ri->sc->tp, bp); in xrep_findroot_block()
871 struct xfs_scrub *sc, in xrep_find_ag_btree_roots() argument
876 struct xfs_mount *mp = sc->mp; in xrep_find_ag_btree_roots()
885 ri.sc = sc; in xrep_find_ag_btree_roots()
896 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag); in xrep_find_ag_btree_roots()
906 struct xfs_scrub *sc, in xrep_force_quotacheck() argument
912 if (!(flag & sc->mp->m_qflags)) in xrep_force_quotacheck()
915 sc->mp->m_qflags &= ~flag; in xrep_force_quotacheck()
916 spin_lock(&sc->mp->m_sb_lock); in xrep_force_quotacheck()
917 sc->mp->m_sb.sb_qflags &= ~flag; in xrep_force_quotacheck()
918 spin_unlock(&sc->mp->m_sb_lock); in xrep_force_quotacheck()
919 xfs_log_sb(sc->tp); in xrep_force_quotacheck()
934 struct xfs_scrub *sc) in xrep_ino_dqattach() argument
938 error = xfs_qm_dqattach_locked(sc->ip, false); in xrep_ino_dqattach()
943 xfs_err_ratelimited(sc->mp, in xrep_ino_dqattach()
945 (unsigned long long)sc->ip->i_ino, error); in xrep_ino_dqattach()
946 if (XFS_IS_UQUOTA_ON(sc->mp) && !sc->ip->i_udquot) in xrep_ino_dqattach()
947 xrep_force_quotacheck(sc, XFS_DQTYPE_USER); in xrep_ino_dqattach()
948 if (XFS_IS_GQUOTA_ON(sc->mp) && !sc->ip->i_gdquot) in xrep_ino_dqattach()
949 xrep_force_quotacheck(sc, XFS_DQTYPE_GROUP); in xrep_ino_dqattach()
950 if (XFS_IS_PQUOTA_ON(sc->mp) && !sc->ip->i_pdquot) in xrep_ino_dqattach()
951 xrep_force_quotacheck(sc, XFS_DQTYPE_PROJ); in xrep_ino_dqattach()