Lines Matching full:mp
45 struct xfs_mount *mp, in xfs_initialize_perag_data() argument
50 struct xfs_sb *sbp = &mp->m_sb; in xfs_initialize_perag_data()
64 pag = xfs_perag_get(mp, index); in xfs_initialize_perag_data()
89 xfs_alert(mp, "AGF corruption. Please run xfs_repair."); in xfs_initialize_perag_data()
90 xfs_fs_mark_sick(mp, XFS_SICK_FS_COUNTERS); in xfs_initialize_perag_data()
96 spin_lock(&mp->m_sb_lock); in xfs_initialize_perag_data()
100 spin_unlock(&mp->m_sb_lock); in xfs_initialize_perag_data()
102 xfs_reinit_percpu_counters(mp); in xfs_initialize_perag_data()
104 xfs_fs_mark_healthy(mp, XFS_SICK_FS_COUNTERS); in xfs_initialize_perag_data()
125 struct xfs_mount *mp, in xfs_free_perag_range() argument
133 xfs_group_free(mp, agno, XG_TYPE_AG, xfs_perag_uninit); in xfs_free_perag_range()
139 struct xfs_mount *mp, in __xfs_ag_block_count() argument
147 return mp->m_sb.sb_agblocks; in __xfs_ag_block_count()
148 return dblocks - (agno * mp->m_sb.sb_agblocks); in __xfs_ag_block_count()
153 struct xfs_mount *mp, in xfs_ag_block_count() argument
156 return __xfs_ag_block_count(mp, agno, mp->m_sb.sb_agcount, in xfs_ag_block_count()
157 mp->m_sb.sb_dblocks); in xfs_ag_block_count()
163 struct xfs_mount *mp, in __xfs_agino_range() argument
174 bno = round_up(XFS_AGFL_BLOCK(mp) + 1, M_IGEO(mp)->cluster_align); in __xfs_agino_range()
175 *first = XFS_AGB_TO_AGINO(mp, bno); in __xfs_agino_range()
181 bno = round_down(eoag, M_IGEO(mp)->cluster_align); in __xfs_agino_range()
182 *last = XFS_AGB_TO_AGINO(mp, bno) - 1; in __xfs_agino_range()
187 struct xfs_mount *mp, in xfs_agino_range() argument
192 return __xfs_agino_range(mp, xfs_ag_block_count(mp, agno), first, last); in xfs_agino_range()
201 struct xfs_mount *mp, in xfs_update_last_ag_size() argument
204 struct xfs_perag *pag = xfs_perag_grab(mp, prev_agcount - 1); in xfs_update_last_ag_size()
208 pag_group(pag)->xg_block_count = __xfs_ag_block_count(mp, in xfs_update_last_ag_size()
209 prev_agcount - 1, mp->m_sb.sb_agcount, in xfs_update_last_ag_size()
210 mp->m_sb.sb_dblocks); in xfs_update_last_ag_size()
211 __xfs_agino_range(mp, pag_group(pag)->xg_block_count, &pag->agino_min, in xfs_update_last_ag_size()
219 struct xfs_mount *mp, in xfs_perag_alloc() argument
245 pag_group(pag)->xg_block_count = __xfs_ag_block_count(mp, index, agcount, in xfs_perag_alloc()
247 pag_group(pag)->xg_min_gbno = XFS_AGFL_BLOCK(mp) + 1; in xfs_perag_alloc()
248 __xfs_agino_range(mp, pag_group(pag)->xg_block_count, &pag->agino_min, in xfs_perag_alloc()
251 error = xfs_group_insert(mp, pag_group(pag), index, XG_TYPE_AG); in xfs_perag_alloc()
266 struct xfs_mount *mp, in xfs_initialize_perag() argument
279 error = xfs_perag_alloc(mp, index, new_agcount, dblocks); in xfs_initialize_perag()
284 *maxagi = xfs_set_inode_alloc(mp, new_agcount); in xfs_initialize_perag()
285 mp->m_ag_prealloc_blocks = xfs_prealloc_blocks(mp); in xfs_initialize_perag()
289 xfs_free_perag_range(mp, orig_agcount, index); in xfs_initialize_perag()
295 struct xfs_mount *mp, in xfs_get_aghdr_buf() argument
304 error = xfs_buf_get_uncached(mp->m_ddev_targp, numblks, 0, &bp); in xfs_get_aghdr_buf()
320 struct xfs_mount *mp, in xfs_btroot_init() argument
324 xfs_btree_init_buf(mp, bp, id->bc_ops, 0, 0, id->agno); in xfs_btroot_init()
330 struct xfs_mount *mp, in xfs_freesp_init_recs() argument
337 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1); in xfs_freesp_init_recs()
338 arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks); in xfs_freesp_init_recs()
340 if (xfs_ag_contains_log(mp, id->agno)) { in xfs_freesp_init_recs()
342 xfs_agblock_t start = XFS_FSB_TO_AGBNO(mp, in xfs_freesp_init_recs()
343 mp->m_sb.sb_logstart); in xfs_freesp_init_recs()
345 ASSERT(start >= mp->m_ag_prealloc_blocks); in xfs_freesp_init_recs()
346 if (start != mp->m_ag_prealloc_blocks) { in xfs_freesp_init_recs()
352 mp->m_ag_prealloc_blocks); in xfs_freesp_init_recs()
368 be32_add_cpu(&arec->ar_startblock, mp->m_sb.sb_logblocks); in xfs_freesp_init_recs()
386 struct xfs_mount *mp, in xfs_bnoroot_init() argument
390 xfs_btree_init_buf(mp, bp, id->bc_ops, 0, 0, id->agno); in xfs_bnoroot_init()
391 xfs_freesp_init_recs(mp, bp, id); in xfs_bnoroot_init()
399 struct xfs_mount *mp, in xfs_rmaproot_init() argument
406 xfs_btree_init_buf(mp, bp, id->bc_ops, 0, 4, id->agno); in xfs_rmaproot_init()
419 rrec->rm_blockcount = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_rmaproot_init()
425 rrec->rm_startblock = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_rmaproot_init()
432 rrec->rm_startblock = cpu_to_be32(XFS_IBT_BLOCK(mp)); in xfs_rmaproot_init()
433 rrec->rm_blockcount = cpu_to_be32(XFS_RMAP_BLOCK(mp) - in xfs_rmaproot_init()
434 XFS_IBT_BLOCK(mp)); in xfs_rmaproot_init()
440 rrec->rm_startblock = cpu_to_be32(XFS_RMAP_BLOCK(mp)); in xfs_rmaproot_init()
446 if (xfs_has_reflink(mp)) { in xfs_rmaproot_init()
448 rrec->rm_startblock = cpu_to_be32(xfs_refc_block(mp)); in xfs_rmaproot_init()
456 if (xfs_ag_contains_log(mp, id->agno)) { in xfs_rmaproot_init()
460 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart)); in xfs_rmaproot_init()
461 rrec->rm_blockcount = cpu_to_be32(mp->m_sb.sb_logblocks); in xfs_rmaproot_init()
478 struct xfs_mount *mp, in xfs_sbblock_init() argument
484 xfs_sb_to_disk(dsb, &mp->m_sb); in xfs_sbblock_init()
490 struct xfs_mount *mp, in xfs_agfblock_init() argument
501 agf->agf_bno_root = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_agfblock_init()
502 agf->agf_cnt_root = cpu_to_be32(XFS_CNT_BLOCK(mp)); in xfs_agfblock_init()
505 if (xfs_has_rmapbt(mp)) { in xfs_agfblock_init()
506 agf->agf_rmap_root = cpu_to_be32(XFS_RMAP_BLOCK(mp)); in xfs_agfblock_init()
514 tmpsize = id->agsize - mp->m_ag_prealloc_blocks; in xfs_agfblock_init()
517 if (xfs_has_crc(mp)) in xfs_agfblock_init()
518 uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid); in xfs_agfblock_init()
519 if (xfs_has_reflink(mp)) { in xfs_agfblock_init()
521 xfs_refc_block(mp)); in xfs_agfblock_init()
526 if (xfs_ag_contains_log(mp, id->agno)) { in xfs_agfblock_init()
527 int64_t logblocks = mp->m_sb.sb_logblocks; in xfs_agfblock_init()
531 XFS_FSB_TO_AGBNO(mp, mp->m_sb.sb_logstart) - logblocks); in xfs_agfblock_init()
537 struct xfs_mount *mp, in xfs_agflblock_init() argument
545 if (xfs_has_crc(mp)) { in xfs_agflblock_init()
548 uuid_copy(&agfl->agfl_uuid, &mp->m_sb.sb_meta_uuid); in xfs_agflblock_init()
552 for (bucket = 0; bucket < xfs_agfl_size(mp); bucket++) in xfs_agflblock_init()
558 struct xfs_mount *mp, in xfs_agiblock_init() argument
570 agi->agi_root = cpu_to_be32(XFS_IBT_BLOCK(mp)); in xfs_agiblock_init()
575 if (xfs_has_crc(mp)) in xfs_agiblock_init()
576 uuid_copy(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid); in xfs_agiblock_init()
577 if (xfs_has_finobt(mp)) { in xfs_agiblock_init()
578 agi->agi_free_root = cpu_to_be32(XFS_FIBT_BLOCK(mp)); in xfs_agiblock_init()
583 if (xfs_has_inobtcounts(mp)) { in xfs_agiblock_init()
585 if (xfs_has_finobt(mp)) in xfs_agiblock_init()
590 typedef void (*aghdr_init_work_f)(struct xfs_mount *mp, struct xfs_buf *bp,
594 struct xfs_mount *mp, in xfs_ag_init_hdr() argument
602 error = xfs_get_aghdr_buf(mp, id->daddr, id->numblks, &bp, ops); in xfs_ag_init_hdr()
606 (*work)(mp, bp, id); in xfs_ag_init_hdr()
634 struct xfs_mount *mp, in xfs_ag_init_headers() argument
640 .daddr = XFS_AG_DADDR(mp, id->agno, XFS_SB_DADDR), in xfs_ag_init_headers()
641 .numblks = XFS_FSS_TO_BB(mp, 1), in xfs_ag_init_headers()
647 .daddr = XFS_AG_DADDR(mp, id->agno, XFS_AGF_DADDR(mp)), in xfs_ag_init_headers()
648 .numblks = XFS_FSS_TO_BB(mp, 1), in xfs_ag_init_headers()
654 .daddr = XFS_AG_DADDR(mp, id->agno, XFS_AGFL_DADDR(mp)), in xfs_ag_init_headers()
655 .numblks = XFS_FSS_TO_BB(mp, 1), in xfs_ag_init_headers()
661 .daddr = XFS_AG_DADDR(mp, id->agno, XFS_AGI_DADDR(mp)), in xfs_ag_init_headers()
662 .numblks = XFS_FSS_TO_BB(mp, 1), in xfs_ag_init_headers()
668 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_BNO_BLOCK(mp)), in xfs_ag_init_headers()
669 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
676 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_CNT_BLOCK(mp)), in xfs_ag_init_headers()
677 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
684 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_IBT_BLOCK(mp)), in xfs_ag_init_headers()
685 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
692 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_FIBT_BLOCK(mp)), in xfs_ag_init_headers()
693 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
697 .need_init = xfs_has_finobt(mp) in xfs_ag_init_headers()
700 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, XFS_RMAP_BLOCK(mp)), in xfs_ag_init_headers()
701 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
705 .need_init = xfs_has_rmapbt(mp) in xfs_ag_init_headers()
708 .daddr = XFS_AGB_TO_DADDR(mp, id->agno, xfs_refc_block(mp)), in xfs_ag_init_headers()
709 .numblks = BTOBB(mp->m_sb.sb_blocksize), in xfs_ag_init_headers()
713 .need_init = xfs_has_reflink(mp) in xfs_ag_init_headers()
723 id->nfree += id->agsize - mp->m_ag_prealloc_blocks; in xfs_ag_init_headers()
731 error = xfs_ag_init_hdr(mp, id, dp->work, dp->ops); in xfs_ag_init_headers()
744 struct xfs_mount *mp = pag_mount(pag); in xfs_ag_shrink_space() local
747 .mp = mp, in xfs_ag_shrink_space()
761 ASSERT(pag_agno(pag) == mp->m_sb.sb_agcount - 1); in xfs_ag_shrink_space()
775 if (XFS_IS_CORRUPT(mp, agf->agf_length != agi->agi_length)) { in xfs_ag_shrink_space()
858 __xfs_agino_range(mp, pag_group(pag)->xg_block_count, &pag->agino_min, in xfs_ag_shrink_space()
870 xfs_warn(mp, "Error %d reserving per-AG metadata reserve pool.", err2); in xfs_ag_shrink_space()
871 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); in xfs_ag_shrink_space()
884 struct xfs_mount *mp = pag_mount(pag); in xfs_ag_extend_space() local
890 ASSERT(pag_agno(pag) == mp->m_sb.sb_agcount - 1); in xfs_ag_extend_space()
930 __xfs_agino_range(mp, pag_group(pag)->xg_block_count, &pag->agino_min, in xfs_ag_extend_space()