/* Write this to disk. */
        xfs_trans_buf_set_type(sc->tp, bp, XFS_BLFT_SB_BUF);
        xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1);
-       return error;
+       return 0;
 }
 
 /* AGF */
        pag->pagf_refcount_level = be32_to_cpu(agf->agf_refcount_level);
        set_bit(XFS_AGSTATE_AGF_INIT, &pag->pag_opstate);
 
-       return 0;
+       return xrep_roll_ag_trans(sc);
 }
 
 /* Repair the AGF. v5 filesystems only. */
        /* Dump any AGFL overflow. */
        error = xrep_reap_agblocks(sc, &agfl_extents, &XFS_RMAP_OINFO_AG,
                        XFS_AG_RESV_AGFL);
+       if (error)
+               goto err;
+
 err:
        xagb_bitmap_destroy(&agfl_extents);
        return error;
        pag->pagi_freecount = be32_to_cpu(agi->agi_freecount);
        set_bit(XFS_AGSTATE_AGI_INIT, &pag->pag_opstate);
 
-       return 0;
+       return xrep_roll_ag_trans(sc);
 }
 
 /* Repair the AGI. */