Lines Matching refs:mp
31 xfs_mount_t *mp, /* file system mount structure */
39 return xfs_rtmodify_summary_int(mp, tp, log, bbno, 0, rbpp, rsb, sum);
48 xfs_mount_t *mp, /* file system mount structure */
62 if (mp->m_rsum_cache && low < mp->m_rsum_cache[bbno])
63 low = mp->m_rsum_cache[bbno];
72 error = xfs_rtget_summary(mp, tp, log, bbno, rbpp, rsb, &sum);
90 if (mp->m_rsum_cache && log > mp->m_rsum_cache[bbno])
91 mp->m_rsum_cache[bbno] = log;
143 xfs_mount_t *mp, /* file system mount point */
161 error = xfs_rtfind_back(mp, tp, start, 0, &preblock);
168 error = xfs_rtfind_forw(mp, tp, end, mp->m_sb.sb_rextents - 1,
177 error = xfs_rtmodify_summary(mp, tp,
179 XFS_BITTOBLOCK(mp, preblock), -1, rbpp, rsb);
188 error = xfs_rtmodify_summary(mp, tp,
190 XFS_BITTOBLOCK(mp, preblock), 1, rbpp, rsb);
200 error = xfs_rtmodify_summary(mp, tp,
202 XFS_BITTOBLOCK(mp, end + 1), 1, rbpp, rsb);
210 error = xfs_rtmodify_range(mp, tp, start, len, 0);
220 struct xfs_mount *mp,
227 ret = min(mp->m_sb.sb_rextents, startrtx + rtxlen) - startrtx;
239 xfs_mount_t *mp, /* file system mount point */
263 for (i = XFS_BLOCKTOBIT(mp, bbno), besti = -1, bestlen = 0,
264 end = XFS_BLOCKTOBIT(mp, bbno + 1) - 1;
268 maxlen = xfs_rtallocate_clamp_len(mp, i, maxlen, prod);
274 error = xfs_rtcheck_range(mp, tp, i, maxlen, 1, &next, &stat);
282 error = xfs_rtallocate_range(mp, tp, i, maxlen, rbpp,
310 error = xfs_rtfind_forw(mp, tp, next, end, &i);
335 error = xfs_rtallocate_range(mp, tp, besti, bestlen, rbpp, rsb);
359 xfs_mount_t *mp, /* file system mount point */
380 error = xfs_rtcheck_range(mp, tp, bno, maxlen, 1, &next, &isfree);
388 error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
423 error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
439 xfs_mount_t *mp, /* file system mount point */
466 if (bno >= mp->m_sb.sb_rextents)
467 bno = mp->m_sb.sb_rextents - 1;
470 maxlen = xfs_rtallocate_clamp_len(mp, bno, maxlen, prod);
479 error = xfs_rtallocate_extent_exact(mp, tp, bno, minlen, maxlen, len,
491 bbno = XFS_BITTOBLOCK(mp, bno);
503 error = xfs_rtany_summary(mp, tp, log2len, mp->m_rsumlevels - 1,
521 error = xfs_rtallocate_extent_block(mp, tp,
550 error = xfs_rtany_summary(mp, tp,
551 log2len, mp->m_rsumlevels - 1,
566 error = xfs_rtallocate_extent_block(mp,
588 error = xfs_rtallocate_extent_block(mp, tp,
613 else if (i > 0 && (int)bbno + i < mp->m_sb.sb_rbmblocks - 1)
619 else if (i <= 0 && (int)bbno - i < mp->m_sb.sb_rbmblocks - 1)
644 xfs_mount_t *mp, /* file system mount point */
672 for (l = xfs_highbit32(maxlen); l < mp->m_rsumlevels; l++) {
676 for (i = 0; i < mp->m_sb.sb_rbmblocks; i++) {
680 error = xfs_rtget_summary(mp, tp, l, i, rbpp, rsb,
693 error = xfs_rtallocate_extent_block(mp, tp, i, maxlen,
710 if (XFS_BITTOBLOCK(mp, n) > i + 1)
711 i = XFS_BITTOBLOCK(mp, n) - 1;
735 for (i = 0; i < mp->m_sb.sb_rbmblocks; i++) {
739 error = xfs_rtget_summary(mp, tp, l, i, rbpp, rsb,
754 error = xfs_rtallocate_extent_block(mp, tp, i,
773 if (XFS_BITTOBLOCK(mp, n) > i + 1)
774 i = XFS_BITTOBLOCK(mp, n) - 1;
789 struct xfs_mount *mp, /* file system mount point */
805 if (ip == mp->m_rsumip)
814 resblks = XFS_GROWFSRT_SPACE_RES(mp, nblocks - oblocks);
818 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtalloc, resblks,
862 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtzero,
874 d = XFS_FSB_TO_DADDR(mp, fsbno);
875 error = xfs_trans_get_buf(tp, mp->m_ddev_targp, d,
876 mp->m_bsize, 0, &bp);
882 memset(bp->b_addr, 0, mp->m_sb.sb_blocksize);
883 xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1);
906 xfs_mount_t *mp, /* file system mount structure */
914 mp->m_rsum_cache = kvzalloc(rbmblocks, GFP_KERNEL);
915 if (!mp->m_rsum_cache)
916 xfs_warn(mp, "could not allocate realtime summary cache");
928 xfs_mount_t *mp, /* mount point for filesystem */
949 sbp = &mp->m_sb;
955 if (!XFS_IS_REALTIME_MOUNT(mp))
961 if (!mp->m_rbmip || !mp->m_rsumip)
973 if (XFS_FSB_TO_B(mp, in->extsize) > XFS_MAX_RTEXTSIZE ||
974 XFS_FSB_TO_B(mp, in->extsize) < XFS_MIN_RTEXTSIZE)
978 if (xfs_has_rmapbt(mp) || xfs_has_reflink(mp) || xfs_has_quota(mp))
988 error = xfs_buf_read_uncached(mp->m_rtdev_targp,
989 XFS_FSB_TO_BB(mp, nrblocks - 1),
990 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
1004 nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize);
1005 nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
1011 if (nrsumblocks > (mp->m_sb.sb_logblocks >> 1))
1017 rbmblocks = XFS_B_TO_FSB(mp, mp->m_rbmip->i_disk_size);
1018 rsumblocks = XFS_B_TO_FSB(mp, mp->m_rsumip->i_disk_size);
1022 error = xfs_growfs_rt_alloc(mp, rbmblocks, nrbmblocks, mp->m_rbmip);
1025 error = xfs_growfs_rt_alloc(mp, rsumblocks, nrsumblocks, mp->m_rsumip);
1029 rsum_cache = mp->m_rsum_cache;
1031 xfs_alloc_rsum_cache(mp, nrbmblocks);
1044 ((sbp->sb_rextents & ((1 << mp->m_blkbit_log) - 1)) != 0);
1050 *nmp = *mp;
1068 nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize);
1069 nmp->m_rsumsize = nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
1073 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtfree, 0, 0, 0,
1080 xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL | XFS_ILOCK_RTBITMAP);
1081 xfs_trans_ijoin(tp, mp->m_rbmip, XFS_ILOCK_EXCL);
1087 mp->m_rbmip->i_disk_size =
1089 i_size_write(VFS_I(mp->m_rbmip), mp->m_rbmip->i_disk_size);
1090 xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE);
1094 xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL | XFS_ILOCK_RTSUM);
1095 xfs_trans_ijoin(tp, mp->m_rsumip, XFS_ILOCK_EXCL);
1101 mp->m_rsumip->i_disk_size = nmp->m_rsumsize;
1102 i_size_write(VFS_I(mp->m_rsumip), mp->m_rsumip->i_disk_size);
1103 xfs_trans_log_inode(tp, mp->m_rsumip, XFS_ILOG_CORE);
1109 mp->m_rsumlevels != nmp->m_rsumlevels) {
1110 error = xfs_rtcopy_summary(mp, nmp, tp);
1149 * Update mp values into the real mp structure.
1151 mp->m_rsumlevels = nrsumlevels;
1152 mp->m_rsumsize = nrsumsize;
1159 mp->m_features |= XFS_FEAT_REALTIME;
1165 error = xfs_update_secondary_sbs(mp);
1169 * Free the fake mp structure.
1178 if (rsum_cache != mp->m_rsum_cache) {
1180 kmem_free(mp->m_rsum_cache);
1181 mp->m_rsum_cache = rsum_cache;
1206 xfs_mount_t *mp = tp->t_mountp;
1212 ASSERT(xfs_isilocked(mp->m_rbmip, XFS_ILOCK_EXCL));
1234 error = xfs_rtallocate_extent_size(mp, tp, minlen, maxlen, len,
1237 error = xfs_rtallocate_extent_near(mp, tp, bno, minlen, maxlen,
1269 struct xfs_mount *mp) /* file system mount structure */
1276 sbp = &mp->m_sb;
1279 if (mp->m_rtdev_targp == NULL) {
1280 xfs_warn(mp,
1284 mp->m_rsumlevels = sbp->sb_rextslog + 1;
1285 mp->m_rsumsize =
1286 (uint)sizeof(xfs_suminfo_t) * mp->m_rsumlevels *
1288 mp->m_rsumsize = roundup(mp->m_rsumsize, sbp->sb_blocksize);
1289 mp->m_rbmip = mp->m_rsumip = NULL;
1293 d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_rblocks);
1294 if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_rblocks) {
1295 xfs_warn(mp, "realtime mount -- %llu != %llu",
1296 (unsigned long long) XFS_BB_TO_FSB(mp, d),
1297 (unsigned long long) mp->m_sb.sb_rblocks);
1300 error = xfs_buf_read_uncached(mp->m_rtdev_targp,
1301 d - XFS_FSB_TO_BB(mp, 1),
1302 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
1304 xfs_warn(mp, "realtime device size check failed");
1313 struct xfs_mount *mp,
1330 struct xfs_mount *mp)
1335 xfs_ilock(mp->m_rbmip, XFS_ILOCK_SHARED | XFS_ILOCK_RTBITMAP);
1336 error = xfs_rtalloc_query_all(mp, NULL, xfs_rtalloc_count_frextent,
1338 xfs_iunlock(mp->m_rbmip, XFS_ILOCK_SHARED | XFS_ILOCK_RTBITMAP);
1342 spin_lock(&mp->m_sb_lock);
1343 mp->m_sb.sb_frextents = val;
1344 spin_unlock(&mp->m_sb_lock);
1345 percpu_counter_set(&mp->m_frextents, mp->m_sb.sb_frextents);
1390 xfs_mount_t *mp) /* file system mount structure */
1395 sbp = &mp->m_sb;
1396 error = xfs_iget(mp, NULL, sbp->sb_rbmino, 0, 0, &mp->m_rbmip);
1399 ASSERT(mp->m_rbmip != NULL);
1401 error = xfs_rtmount_iread_extents(mp->m_rbmip, XFS_ILOCK_RTBITMAP);
1405 error = xfs_iget(mp, NULL, sbp->sb_rsumino, 0, 0, &mp->m_rsumip);
1408 ASSERT(mp->m_rsumip != NULL);
1410 error = xfs_rtmount_iread_extents(mp->m_rsumip, XFS_ILOCK_RTSUM);
1414 xfs_alloc_rsum_cache(mp, sbp->sb_rbmblocks);
1418 xfs_irele(mp->m_rsumip);
1420 xfs_irele(mp->m_rbmip);
1426 struct xfs_mount *mp)
1428 kmem_free(mp->m_rsum_cache);
1429 if (mp->m_rbmip)
1430 xfs_irele(mp->m_rbmip);
1431 if (mp->m_rsumip)
1432 xfs_irele(mp->m_rsumip);
1444 xfs_mount_t *mp, /* file system mount point */
1455 ASSERT(xfs_isilocked(mp->m_rbmip, XFS_ILOCK_EXCL));
1457 seqp = (uint64_t *)&VFS_I(mp->m_rbmip)->i_atime;
1458 if (!(mp->m_rbmip->i_diflags & XFS_DIFLAG_NEWRTBM)) {
1459 mp->m_rbmip->i_diflags |= XFS_DIFLAG_NEWRTBM;
1467 b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >>
1469 if (b >= mp->m_sb.sb_rextents)
1470 div64_u64_rem(b, mp->m_sb.sb_rextents, &b);
1471 if (b + len > mp->m_sb.sb_rextents)
1472 b = mp->m_sb.sb_rextents - len;
1475 xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE);