Lines Matching full:mp

107 	for (log = oargs->mp->m_rsumlevels - 1; log >= 0; log--) {  in xfs_rtcopy_summary()
108 for (bbno = oargs->mp->m_sb.sb_rbmblocks - 1; in xfs_rtcopy_summary()
140 struct xfs_mount *mp = args->mp; in xfs_rtallocate_range() local
170 xfs_rtx_to_rbmblock(mp, preblock), -1); in xfs_rtallocate_range()
181 xfs_rtx_to_rbmblock(mp, preblock), 1); in xfs_rtallocate_range()
193 xfs_rtx_to_rbmblock(mp, end + 1), 1); in xfs_rtallocate_range()
249 struct xfs_mount *mp = args->mp; in xfs_rtallocate_extent_block() local
263 end = min(args->rtg->rtg_extents, xfs_rbmblock_to_rtx(mp, bbno + 1)) - in xfs_rtallocate_extent_block()
265 for (i = xfs_rbmblock_to_rtx(mp, bbno); i <= end; i++) { in xfs_rtallocate_extent_block()
410 struct xfs_mount *mp = args->mp; in xfs_rtallocate_extent_near() local
436 bbno = xfs_rtx_to_rbmblock(mp, start); in xfs_rtallocate_extent_near()
449 error = xfs_rtany_summary(args, log2len, mp->m_rsumlevels - 1, in xfs_rtallocate_extent_near()
492 else if (maxlog < mp->m_blkbit_log) in xfs_rtallocate_extent_near()
495 maxblocks = 2 << (maxlog - mp->m_blkbit_log); in xfs_rtallocate_extent_near()
524 else if (i > 0 && (int)bbno + i < mp->m_sb.sb_rbmblocks - 1) in xfs_rtallocate_extent_near()
530 else if (i <= 0 && (int)bbno - i < mp->m_sb.sb_rbmblocks - 1) in xfs_rtallocate_extent_near()
560 for (i = 0; i < args->mp->m_sb.sb_rbmblocks; i++) { in xfs_rtalloc_sumlevel()
586 if (xfs_rtx_to_rbmblock(args->mp, n) > i + 1) in xfs_rtalloc_sumlevel()
587 i = xfs_rtx_to_rbmblock(args->mp, n) - 1; in xfs_rtalloc_sumlevel()
623 for (l = xfs_highbit32(maxlen); l < args->mp->m_rsumlevels; l++) { in xfs_rtallocate_extent_size()
693 struct xfs_mount *mp) in xfs_growfs_rt_fixup_extsize() argument
695 struct xfs_inode *ip = mp->m_rootip; in xfs_growfs_rt_fixup_extsize()
704 error = xfs_trans_alloc_inode(ip, &M_RES(mp)->tr_ichange, 0, 0, false, in xfs_growfs_rt_fixup_extsize()
743 const struct xfs_mount *mp, in xfs_growfs_rt_alloc_fake_mount() argument
749 nmp = kmemdup(mp, sizeof(*mp), GFP_KERNEL); in xfs_growfs_rt_alloc_fake_mount()
779 struct xfs_mount *mp = rtg_mount(rtg); in xfs_growfs_rt_free_new() local
783 if (rgno < mp->m_sb.sb_rgcount) in xfs_growfs_rt_free_new()
784 start_rtx = xfs_rtgroup_extents(mp, rgno); in xfs_growfs_rt_free_new()
785 end_rtx = xfs_rtgroup_extents(nargs->mp, rgno); in xfs_growfs_rt_free_new()
791 if (xfs_has_rtsb(nargs->mp) && rgno == 0 && start_rtx == 0) in xfs_growfs_rt_free_new()
804 struct xfs_mount *mp = rtg_mount(rtg); in xfs_growfs_rt_nrblocks() local
807 step = (bmbno + 1) * mp->m_rtx_per_rbmblock * rextsize; in xfs_growfs_rt_nrblocks()
808 if (xfs_has_rtgroups(mp)) { in xfs_growfs_rt_nrblocks()
809 xfs_rfsblock_t rgblocks = mp->m_sb.sb_rgextents * rextsize; in xfs_growfs_rt_nrblocks()
828 struct xfs_mount *mp = args->mp; in xfs_growfs_rt_init_rtsb() local
832 if (!xfs_has_rtsb(nargs->mp)) in xfs_growfs_rt_init_rtsb()
836 if (mp->m_sb.sb_rblocks) in xfs_growfs_rt_init_rtsb()
839 error = xfs_buf_get_uncached(mp->m_rtdev_targp, XFS_FSB_TO_BB(mp, 1), in xfs_growfs_rt_init_rtsb()
847 xfs_update_rtsb(rtsb_bp, mp->m_sb_bp); in xfs_growfs_rt_init_rtsb()
848 mp->m_rtsb_bp = rtsb_bp; in xfs_growfs_rt_init_rtsb()
856 error = xfs_rtrmapbt_init_rtsb(nargs->mp, args->rtg, args->tp); in xfs_growfs_rt_init_rtsb()
868 struct xfs_mount *mp = rtg_mount(rtg); in xfs_growfs_rt_bmblock() local
872 .mp = mp, in xfs_growfs_rt_bmblock()
886 nmp = nargs.mp = xfs_growfs_rt_alloc_fake_mount(mp, in xfs_growfs_rt_bmblock()
900 error = xfs_trans_alloc(mp, &M_RES(nmp)->tr_growrtfree, 0, 0, 0, in xfs_growfs_rt_bmblock()
932 if (mp->m_sb.sb_rbmblocks != nmp->m_sb.sb_rbmblocks || in xfs_growfs_rt_bmblock()
933 mp->m_rsumlevels != nmp->m_rsumlevels) { in xfs_growfs_rt_bmblock()
946 if (nmp->m_sb.sb_rextsize != mp->m_sb.sb_rextsize) in xfs_growfs_rt_bmblock()
948 nmp->m_sb.sb_rextsize - mp->m_sb.sb_rextsize); in xfs_growfs_rt_bmblock()
949 if (nmp->m_sb.sb_rbmblocks != mp->m_sb.sb_rbmblocks) in xfs_growfs_rt_bmblock()
951 nmp->m_sb.sb_rbmblocks - mp->m_sb.sb_rbmblocks); in xfs_growfs_rt_bmblock()
952 if (nmp->m_sb.sb_rblocks != mp->m_sb.sb_rblocks) in xfs_growfs_rt_bmblock()
954 nmp->m_sb.sb_rblocks - mp->m_sb.sb_rblocks); in xfs_growfs_rt_bmblock()
955 if (nmp->m_sb.sb_rextents != mp->m_sb.sb_rextents) in xfs_growfs_rt_bmblock()
957 nmp->m_sb.sb_rextents - mp->m_sb.sb_rextents); in xfs_growfs_rt_bmblock()
958 if (nmp->m_sb.sb_rextslog != mp->m_sb.sb_rextslog) in xfs_growfs_rt_bmblock()
960 nmp->m_sb.sb_rextslog - mp->m_sb.sb_rextslog); in xfs_growfs_rt_bmblock()
961 if (nmp->m_sb.sb_rgcount != mp->m_sb.sb_rgcount) in xfs_growfs_rt_bmblock()
963 nmp->m_sb.sb_rgcount - mp->m_sb.sb_rgcount); in xfs_growfs_rt_bmblock()
981 mp->m_rsumlevels = nmp->m_rsumlevels; in xfs_growfs_rt_bmblock()
982 mp->m_rsumblocks = nmp->m_rsumblocks; in xfs_growfs_rt_bmblock()
987 xfs_trans_resv_calc(mp, &mp->m_resv); in xfs_growfs_rt_bmblock()
997 mp->m_features |= XFS_FEAT_REALTIME; in xfs_growfs_rt_bmblock()
998 xfs_rtrmapbt_compute_maxlevels(mp); in xfs_growfs_rt_bmblock()
999 xfs_rtrefcountbt_compute_maxlevels(mp); in xfs_growfs_rt_bmblock()
1013 struct xfs_mount *mp) in xfs_last_rtgroup_extents() argument
1015 return mp->m_sb.sb_rextents - in xfs_last_rtgroup_extents()
1016 ((xfs_rtxnum_t)(mp->m_sb.sb_rgcount - 1) * in xfs_last_rtgroup_extents()
1017 mp->m_sb.sb_rgextents); in xfs_last_rtgroup_extents()
1029 struct xfs_mount *mp = rtg_mount(rtg); in xfs_last_rt_bmblock() local
1033 ASSERT(!mp->m_sb.sb_rgcount || rgno >= mp->m_sb.sb_rgcount - 1); in xfs_last_rt_bmblock()
1035 if (mp->m_sb.sb_rgcount && rgno == mp->m_sb.sb_rgcount - 1) { in xfs_last_rt_bmblock()
1036 xfs_rtxnum_t nrext = xfs_last_rtgroup_extents(mp); in xfs_last_rt_bmblock()
1039 bmbno = xfs_rtbitmap_blockcount_len(mp, nrext); in xfs_last_rt_bmblock()
1040 if (xfs_rtx_to_rbmword(mp, nrext) != 0) in xfs_last_rt_bmblock()
1057 struct xfs_mount *mp = rtg_mount(rtg); in xfs_growfs_rt_alloc_blocks() local
1065 nmp = xfs_growfs_rt_alloc_fake_mount(mp, nrblocks, rextsize); in xfs_growfs_rt_alloc_blocks()
1070 if (xfs_has_rtgroups(mp)) { in xfs_growfs_rt_alloc_blocks()
1083 if (mp->m_sb.sb_rgcount && in xfs_growfs_rt_alloc_blocks()
1084 rtg_rgno(rtg) == mp->m_sb.sb_rgcount - 1) in xfs_growfs_rt_alloc_blocks()
1091 orbmblocks = XFS_B_TO_FSB(mp, rbmip->i_disk_size); in xfs_growfs_rt_alloc_blocks()
1092 orsumblocks = XFS_B_TO_FSB(mp, rsumip->i_disk_size); in xfs_growfs_rt_alloc_blocks()
1108 struct xfs_mount *mp, in xfs_growfs_rtg() argument
1120 rtg = xfs_rtgroup_grab(mp, rgno); in xfs_growfs_rtg()
1156 xfs_rtgroup_calc_geometry(mp, rtg, rtg_rgno(rtg), mp->m_sb.sb_rgcount, in xfs_growfs_rtg()
1157 mp->m_sb.sb_rextents); in xfs_growfs_rtg()
1169 const struct xfs_mount *mp, in xfs_growfs_check_rtgeom() argument
1177 nmp = xfs_growfs_rt_alloc_fake_mount(mp, rblocks, rextsize); in xfs_growfs_check_rtgeom()
1196 if (min_logfsbs > mp->m_sb.sb_logblocks) in xfs_growfs_check_rtgeom()
1209 struct xfs_mount *mp, in xfs_growfs_rt_prep_groups() argument
1216 *new_rgcount = howmany_64(rblocks, mp->m_sb.sb_rgextents * rextsize); in xfs_growfs_rt_prep_groups()
1221 if (!mp->m_rtdirip) { in xfs_growfs_rt_prep_groups()
1224 error = xfs_trans_alloc_empty(mp, &tp); in xfs_growfs_rt_prep_groups()
1231 error = xfs_rtginode_mkdir_parent(mp); in xfs_growfs_rt_prep_groups()
1241 struct xfs_mount *mp) in xfs_grow_last_rtg() argument
1243 if (!xfs_has_rtgroups(mp)) in xfs_grow_last_rtg()
1245 if (mp->m_sb.sb_rgcount == 0) in xfs_grow_last_rtg()
1247 return xfs_rtgroup_extents(mp, mp->m_sb.sb_rgcount - 1) <= in xfs_grow_last_rtg()
1248 mp->m_sb.sb_rgextents; in xfs_grow_last_rtg()
1256 struct xfs_mount *mp, in xfs_growfs_rt() argument
1259 xfs_rgnumber_t old_rgcount = mp->m_sb.sb_rgcount; in xfs_growfs_rt()
1263 xfs_agblock_t old_rextsize = mp->m_sb.sb_rextsize; in xfs_growfs_rt()
1270 if (!XFS_IS_REALTIME_MOUNT(mp)) in xfs_growfs_rt()
1273 if (!mutex_trylock(&mp->m_growlock)) in xfs_growfs_rt()
1278 if (in->newblocks <= mp->m_sb.sb_rblocks) in xfs_growfs_rt()
1281 if (mp->m_sb.sb_rblocks > 0 && in->extsize != mp->m_sb.sb_rextsize) in xfs_growfs_rt()
1285 if (XFS_FSB_TO_B(mp, in->extsize) > XFS_MAX_RTEXTSIZE || in xfs_growfs_rt()
1286 XFS_FSB_TO_B(mp, in->extsize) < XFS_MIN_RTEXTSIZE) in xfs_growfs_rt()
1291 if (!xfs_has_rtgroups(mp)) { in xfs_growfs_rt()
1292 if (xfs_has_rmapbt(mp)) in xfs_growfs_rt()
1294 if (xfs_has_quota(mp)) in xfs_growfs_rt()
1296 if (xfs_has_reflink(mp)) in xfs_growfs_rt()
1298 } else if (xfs_has_reflink(mp) && in xfs_growfs_rt()
1299 !xfs_reflink_supports_rextsize(mp, in->extsize)) in xfs_growfs_rt()
1302 error = xfs_sb_validate_fsb_count(&mp->m_sb, in->newblocks); in xfs_growfs_rt()
1308 error = xfs_buf_read_uncached(mp->m_rtdev_targp, in xfs_growfs_rt()
1309 XFS_FSB_TO_BB(mp, in->newblocks - 1), in xfs_growfs_rt()
1310 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL); in xfs_growfs_rt()
1323 error = xfs_growfs_check_rtgeom(mp, mp->m_sb.sb_dblocks, in->newblocks, in xfs_growfs_rt()
1328 if (xfs_has_rtgroups(mp)) { in xfs_growfs_rt()
1329 error = xfs_growfs_rt_prep_groups(mp, in->newblocks, in xfs_growfs_rt()
1335 if (xfs_grow_last_rtg(mp)) { in xfs_growfs_rt()
1336 error = xfs_growfs_rtg(mp, old_rgcount - 1, in->newblocks, in xfs_growfs_rt()
1345 error = xfs_rtgroup_alloc(mp, rgno, new_rgcount, rextents); in xfs_growfs_rt()
1349 error = xfs_growfs_rtg(mp, rgno, in->newblocks, in->extsize); in xfs_growfs_rt()
1353 rtg = xfs_rtgroup_grab(mp, rgno); in xfs_growfs_rt()
1357 xfs_rtgroup_free(mp, rgno); in xfs_growfs_rt()
1364 error = xfs_growfs_rt_fixup_extsize(mp); in xfs_growfs_rt()
1372 if (!xfs_is_shutdown(mp)) { in xfs_growfs_rt()
1373 int error2 = xfs_update_secondary_sbs(mp); in xfs_growfs_rt()
1379 xfs_rt_resv_free(mp); in xfs_growfs_rt()
1380 error2 = xfs_rt_resv_init(mp); in xfs_growfs_rt()
1386 mutex_unlock(&mp->m_growlock); in xfs_growfs_rt()
1393 struct xfs_mount *mp) in xfs_rtmount_readsb() argument
1398 if (!xfs_has_rtsb(mp)) in xfs_rtmount_readsb()
1400 if (mp->m_sb.sb_rblocks == 0) in xfs_rtmount_readsb()
1402 if (mp->m_rtdev_targp == NULL) { in xfs_rtmount_readsb()
1403 xfs_warn(mp, in xfs_rtmount_readsb()
1409 error = xfs_buf_read_uncached(mp->m_rtdev_targp, XFS_RTSB_DADDR, in xfs_rtmount_readsb()
1410 mp->m_sb.sb_blocksize >> BBSHIFT, 0, &bp, in xfs_rtmount_readsb()
1413 xfs_warn(mp, "rt sb validate failed with error %d.", error); in xfs_rtmount_readsb()
1420 mp->m_rtsb_bp = bp; in xfs_rtmount_readsb()
1428 struct xfs_mount *mp) in xfs_rtmount_freesb() argument
1430 struct xfs_buf *bp = mp->m_rtsb_bp; in xfs_rtmount_freesb()
1436 mp->m_rtsb_bp = NULL; in xfs_rtmount_freesb()
1445 struct xfs_mount *mp) /* file system mount structure */ in xfs_rtmount_init() argument
1451 if (mp->m_sb.sb_rblocks == 0) in xfs_rtmount_init()
1453 if (mp->m_rtdev_targp == NULL) { in xfs_rtmount_init()
1454 xfs_warn(mp, in xfs_rtmount_init()
1459 mp->m_rsumblocks = xfs_rtsummary_blockcount(mp, &mp->m_rsumlevels); in xfs_rtmount_init()
1464 d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_rblocks); in xfs_rtmount_init()
1465 if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_rblocks) { in xfs_rtmount_init()
1466 xfs_warn(mp, "realtime mount -- %llu != %llu", in xfs_rtmount_init()
1467 (unsigned long long) XFS_BB_TO_FSB(mp, d), in xfs_rtmount_init()
1468 (unsigned long long) mp->m_sb.sb_rblocks); in xfs_rtmount_init()
1471 error = xfs_buf_read_uncached(mp->m_rtdev_targp, in xfs_rtmount_init()
1472 d - XFS_FSB_TO_BB(mp, 1), in xfs_rtmount_init()
1473 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL); in xfs_rtmount_init()
1475 xfs_warn(mp, "realtime device size check failed"); in xfs_rtmount_init()
1501 struct xfs_mount *mp) in xfs_rtalloc_reinit_frextents() argument
1508 while ((rtg = xfs_rtgroup_next(mp, rtg))) { in xfs_rtalloc_reinit_frextents()
1519 spin_lock(&mp->m_sb_lock); in xfs_rtalloc_reinit_frextents()
1520 mp->m_sb.sb_frextents = val; in xfs_rtalloc_reinit_frextents()
1521 spin_unlock(&mp->m_sb_lock); in xfs_rtalloc_reinit_frextents()
1522 percpu_counter_set(&mp->m_frextents, mp->m_sb.sb_frextents); in xfs_rtalloc_reinit_frextents()
1529 struct xfs_mount *mp) in xfs_rt_resv_free() argument
1534 while ((rtg = xfs_rtgroup_next(mp, rtg))) { in xfs_rt_resv_free()
1543 struct xfs_mount *mp) in xfs_rt_resv_init() argument
1549 while ((rtg = xfs_rtgroup_next(mp, rtg))) { in xfs_rt_resv_init()
1552 ask = xfs_rtrmapbt_calc_reserves(mp); in xfs_rt_resv_init()
1557 ask = xfs_rtrefcountbt_calc_reserves(mp); in xfs_rt_resv_init()
1597 struct xfs_mount *mp, in xfs_rtmount_rtg() argument
1616 return xfs_alloc_rsum_cache(rtg, mp->m_sb.sb_rbmblocks); in xfs_rtmount_rtg()
1625 struct xfs_mount *mp) in xfs_rtmount_inodes() argument
1631 error = xfs_trans_alloc_empty(mp, &tp); in xfs_rtmount_inodes()
1635 if (xfs_has_rtgroups(mp) && mp->m_sb.sb_rgcount > 0) { in xfs_rtmount_inodes()
1641 while ((rtg = xfs_rtgroup_next(mp, rtg))) { in xfs_rtmount_inodes()
1642 error = xfs_rtmount_rtg(mp, tp, rtg); in xfs_rtmount_inodes()
1645 xfs_rtunmount_inodes(mp); in xfs_rtmount_inodes()
1657 struct xfs_mount *mp) in xfs_rtunmount_inodes() argument
1661 while ((rtg = xfs_rtgroup_next(mp, rtg))) in xfs_rtunmount_inodes()
1663 xfs_rtginode_irele(&mp->m_rtdirip); in xfs_rtunmount_inodes()
1679 struct xfs_mount *mp = rtg_mount(rtg); in xfs_rtpick_extent() local
1699 b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >> in xfs_rtpick_extent()
1701 if (b >= mp->m_sb.sb_rextents) in xfs_rtpick_extent()
1702 div64_u64_rem(b, mp->m_sb.sb_rextents, &b); in xfs_rtpick_extent()
1703 if (b + len > mp->m_sb.sb_rextents) in xfs_rtpick_extent()
1704 b = mp->m_sb.sb_rextents - len; in xfs_rtpick_extent()
1756 struct xfs_mount *mp = rtg_mount(rtg); in xfs_rtalloc_check_busy() local
1759 xfs_extlen_t minlen = xfs_rtxlen_to_extlen(mp, minlen_rtx); in xfs_rtalloc_check_busy()
1760 xfs_extlen_t len = xfs_rtxlen_to_extlen(mp, len_rtx); in xfs_rtalloc_check_busy()
1765 xfs_rtxlen_to_extlen(mp, maxlen_rtx), &rgbno, &len, in xfs_rtalloc_check_busy()
1785 *resrtx = xfs_rgbno_to_rtx(mp, aligned_rgbno); in xfs_rtalloc_check_busy()
1786 *reslen = xfs_extlen_to_rtxlen(mp, in xfs_rtalloc_check_busy()
1789 *resrtx = xfs_rgbno_to_rtx(mp, rgbno); in xfs_rtalloc_check_busy()
1790 *reslen = xfs_extlen_to_rtxlen(mp, len); in xfs_rtalloc_check_busy()
1864 .mp = tp->t_mountp, in xfs_rtallocate_rtg()
1872 args.rtg = xfs_rtgroup_grab(args.mp, rgno); in xfs_rtallocate_rtg()
1896 if (!xfs_has_rtgroups(args.mp)) in xfs_rtallocate_rtg()
1907 start = xfs_rtb_to_rtx(args.mp, bno_hint); in xfs_rtallocate_rtg()
1908 else if (!xfs_has_rtgroups(args.mp) && initial_user_data) in xfs_rtallocate_rtg()
1930 if (xfs_has_rtgroups(args.mp)) in xfs_rtallocate_rtg()
1935 if (xfs_has_rtgroups(args.mp)) { in xfs_rtallocate_rtg()
1952 *blen = xfs_rtxlen_to_extlen(args.mp, len); in xfs_rtallocate_rtg()
1976 struct xfs_mount *mp = tp->t_mountp; in xfs_rtallocate_rtgs() local
1987 start_rgno = xfs_rtb_to_rgno(mp, bno_hint); in xfs_rtallocate_rtgs()
1989 start_rgno = (atomic_inc_return(&mp->m_rtgrotor) - 1) % in xfs_rtallocate_rtgs()
1990 mp->m_sb.sb_rgcount; in xfs_rtallocate_rtgs()
2003 if (++rgno == mp->m_sb.sb_rgcount) in xfs_rtallocate_rtgs()
2019 struct xfs_mount *mp = ap->ip->i_mount; in xfs_rtallocate_align() local
2021 xfs_extlen_t minlen = mp->m_sb.sb_rextsize; in xfs_rtallocate_align()
2027 align = mp->m_sb.sb_rextsize; in xfs_rtallocate_align()
2035 if (align == mp->m_sb.sb_rextsize) in xfs_rtallocate_align()
2039 error = xfs_bmap_extsize_align(mp, &ap->got, &ap->prev, align, 1, in xfs_rtallocate_align()
2044 ASSERT(xfs_extlen_to_rtxmod(mp, ap->length) == 0); in xfs_rtallocate_align()
2064 *ralen = xfs_extlen_to_rtxlen(mp, min(ap->length, XFS_MAX_BMBT_EXTLEN)); in xfs_rtallocate_align()
2065 *raminlen = max_t(xfs_rtxlen_t, 1, xfs_extlen_to_rtxlen(mp, minlen)); in xfs_rtallocate_align()
2077 *prod = xfs_extlen_to_rtxlen(mp, align); in xfs_rtallocate_align()