Lines Matching refs:sa
410 struct xchk_ag *sa)
414 error = xfs_ialloc_read_agi(sa->pag, sc->tp, &sa->agi_bp);
418 error = xfs_alloc_read_agf(sa->pag, sc->tp, 0, &sa->agf_bp);
433 struct xchk_ag *sa = &sc->sa;
436 ASSERT(sa->pag != NULL);
437 ASSERT(sa->agi_bp == NULL);
438 ASSERT(sa->agf_bp == NULL);
444 error = xchk_perag_read_headers(sc, sa);
479 if (!xfs_perag_intent_busy(sa->pag))
482 if (sa->agf_bp) {
483 xfs_trans_brelse(sc->tp, sa->agf_bp);
484 sa->agf_bp = NULL;
487 if (sa->agi_bp) {
488 xfs_trans_brelse(sc->tp, sa->agi_bp);
489 sa->agi_bp = NULL;
494 error = xfs_perag_intent_drain(sa->pag);
511 struct xchk_ag *sa)
515 ASSERT(!sa->pag);
516 sa->pag = xfs_perag_get(mp, agno);
517 if (!sa->pag)
526 struct xchk_ag *sa)
528 if (sa->refc_cur)
529 xfs_btree_del_cursor(sa->refc_cur, XFS_BTREE_ERROR);
530 if (sa->rmap_cur)
531 xfs_btree_del_cursor(sa->rmap_cur, XFS_BTREE_ERROR);
532 if (sa->fino_cur)
533 xfs_btree_del_cursor(sa->fino_cur, XFS_BTREE_ERROR);
534 if (sa->ino_cur)
535 xfs_btree_del_cursor(sa->ino_cur, XFS_BTREE_ERROR);
536 if (sa->cnt_cur)
537 xfs_btree_del_cursor(sa->cnt_cur, XFS_BTREE_ERROR);
538 if (sa->bno_cur)
539 xfs_btree_del_cursor(sa->bno_cur, XFS_BTREE_ERROR);
541 sa->refc_cur = NULL;
542 sa->rmap_cur = NULL;
543 sa->fino_cur = NULL;
544 sa->ino_cur = NULL;
545 sa->bno_cur = NULL;
546 sa->cnt_cur = NULL;
553 struct xchk_ag *sa)
557 if (sa->agf_bp &&
558 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_BNO)) {
560 sa->bno_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp,
561 sa->pag, XFS_BTNUM_BNO);
564 if (sa->agf_bp &&
565 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_CNT)) {
567 sa->cnt_cur = xfs_allocbt_init_cursor(mp, sc->tp, sa->agf_bp,
568 sa->pag, XFS_BTNUM_CNT);
572 if (sa->agi_bp &&
573 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_INO)) {
574 sa->ino_cur = xfs_inobt_init_cursor(sa->pag, sc->tp, sa->agi_bp,
579 if (sa->agi_bp && xfs_has_finobt(mp) &&
580 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_FINO)) {
581 sa->fino_cur = xfs_inobt_init_cursor(sa->pag, sc->tp, sa->agi_bp,
586 if (sa->agf_bp && xfs_has_rmapbt(mp) &&
587 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_RMAP)) {
588 sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, sa->agf_bp,
589 sa->pag);
593 if (sa->agf_bp && xfs_has_reflink(mp) &&
594 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_REFC)) {
595 sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp,
596 sa->agf_bp, sa->pag);
604 struct xchk_ag *sa)
606 xchk_ag_btcur_free(sa);
607 if (sa->agf_bp) {
608 xfs_trans_brelse(sc->tp, sa->agf_bp);
609 sa->agf_bp = NULL;
611 if (sa->agi_bp) {
612 xfs_trans_brelse(sc->tp, sa->agi_bp);
613 sa->agi_bp = NULL;
615 if (sa->pag) {
616 xfs_perag_put(sa->pag);
617 sa->pag = NULL;
632 struct xchk_ag *sa)
636 error = xchk_ag_read_headers(sc, agno, sa);
640 xchk_ag_btcur_init(sc, sa);
712 return xchk_ag_init(sc, sc->sm->sm_agno, &sc->sa);
1257 struct xfs_perag *pag = sc->sa.pag;
1269 if (sc->sa.agi_bp == NULL) {
1270 ASSERT(sc->sa.agi_bp != NULL);