Lines Matching defs:sc
72 struct xfs_scrub *sc)
74 struct xfs_mount *mp = sc->mp;
81 if (xchk_should_terminate(sc, &error))
88 error = xfs_ialloc_read_agi(pag, sc->tp, 0, &agi_bp);
91 error = xfs_alloc_read_agf(pag, sc->tp, 0, &agf_bp);
122 struct xfs_scrub *sc)
126 error = freeze_super(sc->mp->m_super, FREEZE_HOLDER_KERNEL, NULL);
127 trace_xchk_fsfreeze(sc, error);
133 struct xfs_scrub *sc)
138 error = thaw_super(sc->mp->m_super, FREEZE_HOLDER_KERNEL, NULL);
139 trace_xchk_fsthaw(sc, error);
153 struct xfs_scrub *sc)
155 struct xchk_fscounters *fsc = sc->buf;
158 if (sc->flags & XCHK_HAVE_FREEZE_PROT) {
159 sc->flags &= ~XCHK_HAVE_FREEZE_PROT;
160 mnt_drop_write_file(sc->file);
164 while ((error = xchk_fsfreeze(sc)) == -EBUSY) {
165 if (xchk_should_terminate(sc, &error))
183 struct xfs_scrub *sc = fsc->sc;
189 error = xchk_fsthaw(sc);
191 xfs_emerg(sc->mp, "still frozen after scrub, err=%d", error);
198 struct xfs_scrub *sc)
207 if (!xfs_has_lazysbcount(sc->mp))
208 xchk_fsgates_enable(sc, XCHK_FSGATES_DRAIN);
210 sc->buf = kzalloc(sizeof(struct xchk_fscounters), XCHK_GFP_FLAGS);
211 if (!sc->buf)
213 sc->buf_cleanup = xchk_fscounters_cleanup;
214 fsc = sc->buf;
215 fsc->sc = sc;
217 xfs_icount_range(sc->mp, &fsc->icount_min, &fsc->icount_max);
220 error = xchk_fscount_warmup(sc);
234 if ((sc->flags & XCHK_TRY_HARDER) || xchk_could_repair(sc)) {
235 error = xchk_fscounters_freeze(sc);
240 return xchk_trans_alloc_empty(sc);
260 struct xfs_scrub *sc,
267 error = xchk_ag_init_existing(sc, agno, &sc->sa);
271 error = xfs_btree_count_blocks(sc->sa.bno_cur, &blocks);
276 error = xfs_btree_count_blocks(sc->sa.cnt_cur, &blocks);
282 xchk_ag_free(sc, &sc->sa);
294 struct xfs_scrub *sc,
297 struct xfs_mount *mp = sc->mp;
309 if (xchk_should_terminate(sc, &error))
326 if (xfs_has_lazysbcount(sc->mp)) {
329 error = xchk_fscount_btreeblks(sc, fsc, pag_agno(pag));
345 xchk_set_incomplete(sc);
400 xchk_should_terminate(fsc->sc, &error);
407 struct xfs_scrub *sc,
410 struct xfs_mount *mp = sc->mp;
427 error = xfs_rtalloc_query_all(rtg, sc->tp,
431 xchk_set_incomplete(sc);
443 struct xfs_scrub *sc,
474 struct xfs_scrub *sc,
482 trace_xchk_fscounters_within_range(sc->mp, expected, curr_value,
494 if (sc->sm->sm_flags & XFS_SCRUB_IFLAG_REPAIR)
511 struct xfs_scrub *sc)
513 struct xfs_mount *mp = sc->mp;
514 struct xchk_fscounters *fsc = sc->buf;
527 xchk_set_corrupt(sc);
542 xchk_set_corrupt(sc);
548 xchk_set_corrupt(sc);
552 xchk_set_corrupt(sc);
556 xchk_set_corrupt(sc);
563 xchk_set_corrupt(sc);
566 error = xchk_fscount_aggregate_agcounts(sc, fsc);
567 if (!xchk_process_error(sc, 0, XFS_SB_BLOCK(mp), &error))
571 error = xchk_fscount_count_frextents(sc, fsc);
572 if (!xchk_process_error(sc, 0, XFS_SB_BLOCK(mp), &error))
574 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_INCOMPLETE)
583 if (!xchk_fscount_within_range(sc, icount, &mp->m_icount,
586 xchk_set_corrupt(sc);
591 if (!xchk_fscount_within_range(sc, ifree, &mp->m_ifree, fsc->ifree)) {
593 xchk_set_corrupt(sc);
598 if (!xchk_fscount_within_range(sc, fdblocks,
601 xchk_set_corrupt(sc);
607 !xchk_fscount_within_range(sc, frextents,
611 xchk_set_corrupt(sc);