Lines Matching refs:mp
54 xfs_mount_t *mp, in xfs_fs_geometry() argument
61 geo->blocksize = mp->m_sb.sb_blocksize; in xfs_fs_geometry()
62 geo->rtextsize = mp->m_sb.sb_rextsize; in xfs_fs_geometry()
63 geo->agblocks = mp->m_sb.sb_agblocks; in xfs_fs_geometry()
64 geo->agcount = mp->m_sb.sb_agcount; in xfs_fs_geometry()
65 geo->logblocks = mp->m_sb.sb_logblocks; in xfs_fs_geometry()
66 geo->sectsize = mp->m_sb.sb_sectsize; in xfs_fs_geometry()
67 geo->inodesize = mp->m_sb.sb_inodesize; in xfs_fs_geometry()
68 geo->imaxpct = mp->m_sb.sb_imax_pct; in xfs_fs_geometry()
69 geo->datablocks = mp->m_sb.sb_dblocks; in xfs_fs_geometry()
70 geo->rtblocks = mp->m_sb.sb_rblocks; in xfs_fs_geometry()
71 geo->rtextents = mp->m_sb.sb_rextents; in xfs_fs_geometry()
72 geo->logstart = mp->m_sb.sb_logstart; in xfs_fs_geometry()
73 ASSERT(sizeof(geo->uuid)==sizeof(mp->m_sb.sb_uuid)); in xfs_fs_geometry()
74 memcpy(geo->uuid, &mp->m_sb.sb_uuid, sizeof(mp->m_sb.sb_uuid)); in xfs_fs_geometry()
76 geo->sunit = mp->m_sb.sb_unit; in xfs_fs_geometry()
77 geo->swidth = mp->m_sb.sb_width; in xfs_fs_geometry()
83 (xfs_sb_version_hasattr(&mp->m_sb) ? in xfs_fs_geometry()
85 (xfs_sb_version_hasquota(&mp->m_sb) ? in xfs_fs_geometry()
87 (xfs_sb_version_hasalign(&mp->m_sb) ? in xfs_fs_geometry()
89 (xfs_sb_version_hasdalign(&mp->m_sb) ? in xfs_fs_geometry()
91 (xfs_sb_version_hasextflgbit(&mp->m_sb) ? in xfs_fs_geometry()
93 (xfs_sb_version_hassector(&mp->m_sb) ? in xfs_fs_geometry()
95 (xfs_sb_version_hasasciici(&mp->m_sb) ? in xfs_fs_geometry()
97 (xfs_sb_version_haslazysbcount(&mp->m_sb) ? in xfs_fs_geometry()
99 (xfs_sb_version_hasattr2(&mp->m_sb) ? in xfs_fs_geometry()
101 (xfs_sb_version_hasprojid32bit(&mp->m_sb) ? in xfs_fs_geometry()
103 (xfs_sb_version_hascrc(&mp->m_sb) ? in xfs_fs_geometry()
105 (xfs_sb_version_hasftype(&mp->m_sb) ? in xfs_fs_geometry()
107 (xfs_sb_version_hasfinobt(&mp->m_sb) ? in xfs_fs_geometry()
109 (xfs_sb_version_hassparseinodes(&mp->m_sb) ? in xfs_fs_geometry()
111 (xfs_sb_version_hasrmapbt(&mp->m_sb) ? in xfs_fs_geometry()
113 (xfs_sb_version_hasreflink(&mp->m_sb) ? in xfs_fs_geometry()
115 geo->logsectsize = xfs_sb_version_hassector(&mp->m_sb) ? in xfs_fs_geometry()
116 mp->m_sb.sb_logsectsize : BBSIZE; in xfs_fs_geometry()
117 geo->rtsectsize = mp->m_sb.sb_blocksize; in xfs_fs_geometry()
118 geo->dirblocksize = mp->m_dir_geo->blksize; in xfs_fs_geometry()
122 (xfs_sb_version_haslogv2(&mp->m_sb) ? in xfs_fs_geometry()
124 geo->logsunit = mp->m_sb.sb_logsunit; in xfs_fs_geometry()
131 struct xfs_mount *mp, in xfs_growfs_get_hdr_buf() argument
139 bp = xfs_buf_get_uncached(mp->m_ddev_targp, numblks, flags); in xfs_growfs_get_hdr_buf()
153 xfs_mount_t *mp, /* mount point for filesystem */ in xfs_growfs_data_private() argument
178 if (nb < mp->m_sb.sb_dblocks || pct < 0 || pct > 100) in xfs_growfs_data_private()
180 if ((error = xfs_sb_validate_fsb_count(&mp->m_sb, nb))) in xfs_growfs_data_private()
182 dpct = pct - mp->m_sb.sb_imax_pct; in xfs_growfs_data_private()
183 error = xfs_buf_read_uncached(mp->m_ddev_targp, in xfs_growfs_data_private()
184 XFS_FSB_TO_BB(mp, nb) - XFS_FSS_TO_BB(mp, 1), in xfs_growfs_data_private()
185 XFS_FSS_TO_BB(mp, 1), 0, &bp, NULL); in xfs_growfs_data_private()
191 nb_mod = do_div(new, mp->m_sb.sb_agblocks); in xfs_growfs_data_private()
195 nb = (xfs_rfsblock_t)nagcount * mp->m_sb.sb_agblocks; in xfs_growfs_data_private()
196 if (nb < mp->m_sb.sb_dblocks) in xfs_growfs_data_private()
199 new = nb - mp->m_sb.sb_dblocks; in xfs_growfs_data_private()
200 oagcount = mp->m_sb.sb_agcount; in xfs_growfs_data_private()
204 error = xfs_initialize_perag(mp, nagcount, &nagimax); in xfs_growfs_data_private()
209 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growdata, in xfs_growfs_data_private()
210 XFS_GROWFS_SPACE_RES(mp), 0, XFS_TRANS_RESERVE, &tp); in xfs_growfs_data_private()
226 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
227 XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), in xfs_growfs_data_private()
228 XFS_FSS_TO_BB(mp, 1), 0, in xfs_growfs_data_private()
242 (agno * (xfs_rfsblock_t)mp->m_sb.sb_agblocks); in xfs_growfs_data_private()
244 agsize = mp->m_sb.sb_agblocks; in xfs_growfs_data_private()
246 agf->agf_roots[XFS_BTNUM_BNOi] = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_growfs_data_private()
247 agf->agf_roots[XFS_BTNUM_CNTi] = cpu_to_be32(XFS_CNT_BLOCK(mp)); in xfs_growfs_data_private()
250 if (xfs_sb_version_hasrmapbt(&mp->m_sb)) { in xfs_growfs_data_private()
252 cpu_to_be32(XFS_RMAP_BLOCK(mp)); in xfs_growfs_data_private()
260 tmpsize = agsize - mp->m_ag_prealloc_blocks; in xfs_growfs_data_private()
263 if (xfs_sb_version_hascrc(&mp->m_sb)) in xfs_growfs_data_private()
264 uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid); in xfs_growfs_data_private()
265 if (xfs_sb_version_hasreflink(&mp->m_sb)) { in xfs_growfs_data_private()
267 xfs_refc_block(mp)); in xfs_growfs_data_private()
280 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
281 XFS_AG_DADDR(mp, agno, XFS_AGFL_DADDR(mp)), in xfs_growfs_data_private()
282 XFS_FSS_TO_BB(mp, 1), 0, in xfs_growfs_data_private()
290 if (xfs_sb_version_hascrc(&mp->m_sb)) { in xfs_growfs_data_private()
293 uuid_copy(&agfl->agfl_uuid, &mp->m_sb.sb_meta_uuid); in xfs_growfs_data_private()
296 agfl_bno = XFS_BUF_TO_AGFL_BNO(mp, bp); in xfs_growfs_data_private()
297 for (bucket = 0; bucket < xfs_agfl_size(mp); bucket++) in xfs_growfs_data_private()
308 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
309 XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), in xfs_growfs_data_private()
310 XFS_FSS_TO_BB(mp, 1), 0, in xfs_growfs_data_private()
323 agi->agi_root = cpu_to_be32(XFS_IBT_BLOCK(mp)); in xfs_growfs_data_private()
328 if (xfs_sb_version_hascrc(&mp->m_sb)) in xfs_growfs_data_private()
329 uuid_copy(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid); in xfs_growfs_data_private()
330 if (xfs_sb_version_hasfinobt(&mp->m_sb)) { in xfs_growfs_data_private()
331 agi->agi_free_root = cpu_to_be32(XFS_FIBT_BLOCK(mp)); in xfs_growfs_data_private()
345 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
346 XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)), in xfs_growfs_data_private()
347 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
355 xfs_btree_init_block(mp, bp, XFS_BTNUM_BNO, 0, 1, agno, 0); in xfs_growfs_data_private()
357 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1); in xfs_growfs_data_private()
358 arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks); in xfs_growfs_data_private()
370 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
371 XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)), in xfs_growfs_data_private()
372 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
379 xfs_btree_init_block(mp, bp, XFS_BTNUM_CNT, 0, 1, agno, 0); in xfs_growfs_data_private()
381 arec = XFS_ALLOC_REC_ADDR(mp, XFS_BUF_TO_BLOCK(bp), 1); in xfs_growfs_data_private()
382 arec->ar_startblock = cpu_to_be32(mp->m_ag_prealloc_blocks); in xfs_growfs_data_private()
393 if (xfs_sb_version_hasrmapbt(&mp->m_sb)) { in xfs_growfs_data_private()
397 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
398 XFS_AGB_TO_DADDR(mp, agno, XFS_RMAP_BLOCK(mp)), in xfs_growfs_data_private()
399 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
406 xfs_btree_init_block(mp, bp, XFS_BTNUM_RMAP, 0, 0, in xfs_growfs_data_private()
422 rrec->rm_blockcount = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_growfs_data_private()
429 rrec->rm_startblock = cpu_to_be32(XFS_BNO_BLOCK(mp)); in xfs_growfs_data_private()
437 rrec->rm_startblock = cpu_to_be32(XFS_IBT_BLOCK(mp)); in xfs_growfs_data_private()
438 rrec->rm_blockcount = cpu_to_be32(XFS_RMAP_BLOCK(mp) - in xfs_growfs_data_private()
439 XFS_IBT_BLOCK(mp)); in xfs_growfs_data_private()
446 rrec->rm_startblock = cpu_to_be32(XFS_RMAP_BLOCK(mp)); in xfs_growfs_data_private()
453 if (xfs_sb_version_hasreflink(&mp->m_sb)) { in xfs_growfs_data_private()
456 xfs_refc_block(mp)); in xfs_growfs_data_private()
472 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
473 XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)), in xfs_growfs_data_private()
474 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
481 xfs_btree_init_block(mp, bp, XFS_BTNUM_INO , 0, 0, agno, 0); in xfs_growfs_data_private()
491 if (xfs_sb_version_hasfinobt(&mp->m_sb)) { in xfs_growfs_data_private()
492 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
493 XFS_AGB_TO_DADDR(mp, agno, XFS_FIBT_BLOCK(mp)), in xfs_growfs_data_private()
494 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
501 xfs_btree_init_block(mp, bp, XFS_BTNUM_FINO, in xfs_growfs_data_private()
513 if (xfs_sb_version_hasreflink(&mp->m_sb)) { in xfs_growfs_data_private()
514 bp = xfs_growfs_get_hdr_buf(mp, in xfs_growfs_data_private()
515 XFS_AGB_TO_DADDR(mp, agno, xfs_refc_block(mp)), in xfs_growfs_data_private()
516 BTOBB(mp->m_sb.sb_blocksize), 0, in xfs_growfs_data_private()
523 xfs_btree_init_block(mp, bp, XFS_BTNUM_REFC, in xfs_growfs_data_private()
542 error = xfs_ialloc_read_agi(mp, tp, agno, &bp); in xfs_growfs_data_private()
550 be32_to_cpu(agi->agi_length) == mp->m_sb.sb_agblocks); in xfs_growfs_data_private()
555 error = xfs_alloc_read_agf(mp, tp, agno, 0, &bp); in xfs_growfs_data_private()
575 XFS_AGB_TO_FSB(mp, agno, in xfs_growfs_data_private()
589 if (nb > mp->m_sb.sb_dblocks) in xfs_growfs_data_private()
591 nb - mp->m_sb.sb_dblocks); in xfs_growfs_data_private()
603 mp->m_maxagi = nagimax; in xfs_growfs_data_private()
604 if (mp->m_sb.sb_imax_pct) { in xfs_growfs_data_private()
605 uint64_t icount = mp->m_sb.sb_dblocks * mp->m_sb.sb_imax_pct; in xfs_growfs_data_private()
607 mp->m_maxicount = icount << mp->m_sb.sb_inopblog; in xfs_growfs_data_private()
609 mp->m_maxicount = 0; in xfs_growfs_data_private()
610 xfs_set_low_space_thresholds(mp); in xfs_growfs_data_private()
611 mp->m_alloc_set_aside = xfs_alloc_set_aside(mp); in xfs_growfs_data_private()
620 pag = xfs_perag_get(mp, agno); in xfs_growfs_data_private()
628 error = xfs_fs_reserve_ag_blocks(mp); in xfs_growfs_data_private()
641 error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, in xfs_growfs_data_private()
642 XFS_AGB_TO_DADDR(mp, agno, XFS_SB_BLOCK(mp)), in xfs_growfs_data_private()
643 XFS_FSS_TO_BB(mp, 1), 0, &bp, in xfs_growfs_data_private()
646 bp = xfs_trans_get_buf(NULL, mp->m_ddev_targp, in xfs_growfs_data_private()
647 XFS_AGB_TO_DADDR(mp, agno, XFS_SB_BLOCK(mp)), in xfs_growfs_data_private()
648 XFS_FSS_TO_BB(mp, 1), 0); in xfs_growfs_data_private()
664 xfs_warn(mp, in xfs_growfs_data_private()
670 xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb); in xfs_growfs_data_private()
675 xfs_warn(mp, in xfs_growfs_data_private()
693 xfs_mount_t *mp, /* mount point for filesystem */ in xfs_growfs_log_private() argument
699 if (nb < XFS_MIN_LOG_BLOCKS || nb < XFS_B_TO_FSB(mp, XFS_MIN_LOG_BYTES)) in xfs_growfs_log_private()
701 if (nb == mp->m_sb.sb_logblocks && in xfs_growfs_log_private()
702 in->isint == (mp->m_sb.sb_logstart != 0)) in xfs_growfs_log_private()
722 xfs_mount_t *mp, in xfs_growfs_data() argument
729 if (!mutex_trylock(&mp->m_growlock)) in xfs_growfs_data()
731 error = xfs_growfs_data_private(mp, in); in xfs_growfs_data()
737 mp->m_generation++; in xfs_growfs_data()
738 mutex_unlock(&mp->m_growlock); in xfs_growfs_data()
744 xfs_mount_t *mp, in xfs_growfs_log() argument
751 if (!mutex_trylock(&mp->m_growlock)) in xfs_growfs_log()
753 error = xfs_growfs_log_private(mp, in); in xfs_growfs_log()
754 mutex_unlock(&mp->m_growlock); in xfs_growfs_log()
764 xfs_mount_t *mp, in xfs_fs_counts() argument
767 cnt->allocino = percpu_counter_read_positive(&mp->m_icount); in xfs_fs_counts()
768 cnt->freeino = percpu_counter_read_positive(&mp->m_ifree); in xfs_fs_counts()
769 cnt->freedata = percpu_counter_read_positive(&mp->m_fdblocks) - in xfs_fs_counts()
770 mp->m_alloc_set_aside; in xfs_fs_counts()
772 spin_lock(&mp->m_sb_lock); in xfs_fs_counts()
773 cnt->freertx = mp->m_sb.sb_frextents; in xfs_fs_counts()
774 spin_unlock(&mp->m_sb_lock); in xfs_fs_counts()
795 xfs_mount_t *mp, in xfs_reserve_blocks() argument
809 outval->resblks = mp->m_resblks; in xfs_reserve_blocks()
810 outval->resblks_avail = mp->m_resblks_avail; in xfs_reserve_blocks()
826 spin_lock(&mp->m_sb_lock); in xfs_reserve_blocks()
834 if (mp->m_resblks > request) { in xfs_reserve_blocks()
835 lcounter = mp->m_resblks_avail - request; in xfs_reserve_blocks()
838 mp->m_resblks_avail -= lcounter; in xfs_reserve_blocks()
840 mp->m_resblks = request; in xfs_reserve_blocks()
842 spin_unlock(&mp->m_sb_lock); in xfs_reserve_blocks()
843 error = xfs_mod_fdblocks(mp, fdblks_delta, 0); in xfs_reserve_blocks()
844 spin_lock(&mp->m_sb_lock); in xfs_reserve_blocks()
857 free = percpu_counter_sum(&mp->m_fdblocks) - in xfs_reserve_blocks()
858 mp->m_alloc_set_aside; in xfs_reserve_blocks()
862 delta = request - mp->m_resblks; in xfs_reserve_blocks()
880 spin_unlock(&mp->m_sb_lock); in xfs_reserve_blocks()
881 error = xfs_mod_fdblocks(mp, -fdblks_delta, 0); in xfs_reserve_blocks()
882 spin_lock(&mp->m_sb_lock); in xfs_reserve_blocks()
890 mp->m_resblks += fdblks_delta; in xfs_reserve_blocks()
891 mp->m_resblks_avail += fdblks_delta; in xfs_reserve_blocks()
896 outval->resblks = mp->m_resblks; in xfs_reserve_blocks()
897 outval->resblks_avail = mp->m_resblks_avail; in xfs_reserve_blocks()
900 spin_unlock(&mp->m_sb_lock); in xfs_reserve_blocks()
906 xfs_mount_t *mp, in xfs_fs_goingdown() argument
911 struct super_block *sb = freeze_bdev(mp->m_super->s_bdev); in xfs_fs_goingdown()
914 xfs_force_shutdown(mp, SHUTDOWN_FORCE_UMOUNT); in xfs_fs_goingdown()
921 xfs_force_shutdown(mp, SHUTDOWN_FORCE_UMOUNT); in xfs_fs_goingdown()
924 xfs_force_shutdown(mp, in xfs_fs_goingdown()
942 xfs_mount_t *mp, in xfs_do_force_shutdown() argument
952 xfs_notice(mp, in xfs_do_force_shutdown()
959 if (XFS_FORCED_SHUTDOWN(mp) && !logerror) in xfs_do_force_shutdown()
968 if (xfs_log_force_umount(mp, logerror)) in xfs_do_force_shutdown()
972 xfs_alert_tag(mp, XFS_PTAG_SHUTDOWN_CORRUPT, in xfs_do_force_shutdown()
978 xfs_alert_tag(mp, XFS_PTAG_SHUTDOWN_LOGERROR, in xfs_do_force_shutdown()
981 xfs_alert_tag(mp, XFS_PTAG_SHUTDOWN_IOERROR, in xfs_do_force_shutdown()
984 xfs_alert_tag(mp, XFS_PTAG_SHUTDOWN_IOERROR, in xfs_do_force_shutdown()
989 xfs_alert(mp, in xfs_do_force_shutdown()
999 struct xfs_mount *mp) in xfs_fs_reserve_ag_blocks() argument
1006 for (agno = 0; agno < mp->m_sb.sb_agcount; agno++) { in xfs_fs_reserve_ag_blocks()
1007 pag = xfs_perag_get(mp, agno); in xfs_fs_reserve_ag_blocks()
1015 xfs_warn(mp, in xfs_fs_reserve_ag_blocks()
1017 xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); in xfs_fs_reserve_ag_blocks()
1028 struct xfs_mount *mp) in xfs_fs_unreserve_ag_blocks() argument
1035 for (agno = 0; agno < mp->m_sb.sb_agcount; agno++) { in xfs_fs_unreserve_ag_blocks()
1036 pag = xfs_perag_get(mp, agno); in xfs_fs_unreserve_ag_blocks()
1044 xfs_warn(mp, in xfs_fs_unreserve_ag_blocks()