Lines Matching refs:mp

40 	struct xfs_mount	*mp = args->mp;
46 if (mp->m_rsum_cache) {
47 high = min(high, mp->m_rsum_cache[bbno] - 1);
79 if (mp->m_rsum_cache && log + 1 < mp->m_rsum_cache[bbno])
80 mp->m_rsum_cache[bbno] = log + 1;
99 for (log = oargs->mp->m_rsumlevels - 1; log >= 0; log--) {
100 for (bbno = oargs->mp->m_sb.sb_rbmblocks - 1;
132 struct xfs_mount *mp = args->mp;
151 error = xfs_rtfind_forw(args, end, mp->m_sb.sb_rextents - 1,
162 xfs_rtx_to_rbmblock(mp, preblock), -1);
173 xfs_rtx_to_rbmblock(mp, preblock), 1);
185 xfs_rtx_to_rbmblock(mp, end + 1), 1);
202 struct xfs_mount *mp,
209 ret = min(mp->m_sb.sb_rextents, startrtx + rtxlen) - startrtx;
230 struct xfs_mount *mp = args->mp;
243 for (i = xfs_rbmblock_to_rtx(mp, bbno), besti = -1, bestlen = 0,
244 end = xfs_rbmblock_to_rtx(mp, bbno + 1) - 1;
248 maxlen = xfs_rtallocate_clamp_len(mp, i, maxlen, prod);
399 struct xfs_mount *mp = args->mp;
415 if (start >= mp->m_sb.sb_rextents)
416 start = mp->m_sb.sb_rextents - 1;
419 maxlen = xfs_rtallocate_clamp_len(mp, start, maxlen, prod);
432 bbno = xfs_rtx_to_rbmblock(mp, start);
445 error = xfs_rtany_summary(args, log2len, mp->m_rsumlevels - 1,
488 else if (maxlog < mp->m_blkbit_log)
491 maxblocks = 2 << (maxlog - mp->m_blkbit_log);
520 else if (i > 0 && (int)bbno + i < mp->m_sb.sb_rbmblocks - 1)
526 else if (i <= 0 && (int)bbno - i < mp->m_sb.sb_rbmblocks - 1)
555 for (i = 0; i < args->mp->m_sb.sb_rbmblocks; i++) {
582 if (xfs_rtx_to_rbmblock(args->mp, n) > i + 1)
583 i = xfs_rtx_to_rbmblock(args->mp, n) - 1;
619 for (l = xfs_highbit32(maxlen); l < args->mp->m_rsumlevels; l++) {
659 struct xfs_mount *mp, /* file system mount point */
675 if (ip == mp->m_rsumip)
684 resblks = XFS_GROWFSRT_SPACE_RES(mp, nblocks - oblocks);
688 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtalloc, resblks,
732 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtzero,
744 d = XFS_FSB_TO_DADDR(mp, fsbno);
745 error = xfs_trans_get_buf(tp, mp->m_ddev_targp, d,
746 mp->m_bsize, 0, &bp);
752 memset(bp->b_addr, 0, mp->m_sb.sb_blocksize);
753 xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1);
776 xfs_mount_t *mp, /* file system mount structure */
784 mp->m_rsum_cache = kvmalloc(rbmblocks, GFP_KERNEL);
785 if (mp->m_rsum_cache)
786 memset(mp->m_rsum_cache, -1, rbmblocks);
788 xfs_warn(mp, "could not allocate realtime summary cache");
800 xfs_mount_t *mp, /* mount point for filesystem */
820 sbp = &mp->m_sb;
826 if (!XFS_IS_REALTIME_MOUNT(mp))
832 if (!mp->m_rbmip || !mp->m_rsumip)
844 if (XFS_FSB_TO_B(mp, in->extsize) > XFS_MAX_RTEXTSIZE ||
845 XFS_FSB_TO_B(mp, in->extsize) < XFS_MIN_RTEXTSIZE)
849 if (xfs_has_rmapbt(mp) || xfs_has_reflink(mp) || xfs_has_quota(mp))
859 error = xfs_buf_read_uncached(mp->m_rtdev_targp,
860 XFS_FSB_TO_BB(mp, nrblocks - 1),
861 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
873 nrbmblocks = xfs_rtbitmap_blockcount(mp, nrextents);
876 nrsumblocks = xfs_rtsummary_blockcount(mp, nrsumlevels, nrbmblocks);
877 nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
883 if (nrsumblocks > (mp->m_sb.sb_logblocks >> 1))
889 rbmblocks = XFS_B_TO_FSB(mp, mp->m_rbmip->i_disk_size);
890 rsumblocks = XFS_B_TO_FSB(mp, mp->m_rsumip->i_disk_size);
894 error = xfs_growfs_rt_alloc(mp, rbmblocks, nrbmblocks, mp->m_rbmip);
897 error = xfs_growfs_rt_alloc(mp, rsumblocks, nrsumblocks, mp->m_rsumip);
901 rsum_cache = mp->m_rsum_cache;
903 xfs_alloc_rsum_cache(mp, nrbmblocks);
916 ((sbp->sb_rextents & ((1 << mp->m_blkbit_log) - 1)) != 0);
920 .mp = mp,
923 .mp = nmp,
928 *nmp = *mp;
943 nrsumblocks = xfs_rtsummary_blockcount(mp, nrsumlevels,
945 nmp->m_rsumsize = nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks);
952 error = xfs_trans_alloc(mp, &M_RES(mp)->tr_growrtfree, 0, 0, 0,
962 xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL | XFS_ILOCK_RTBITMAP);
963 xfs_trans_ijoin(tp, mp->m_rbmip, XFS_ILOCK_EXCL);
969 mp->m_rbmip->i_disk_size =
971 i_size_write(VFS_I(mp->m_rbmip), mp->m_rbmip->i_disk_size);
972 xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE);
976 xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL | XFS_ILOCK_RTSUM);
977 xfs_trans_ijoin(tp, mp->m_rsumip, XFS_ILOCK_EXCL);
983 mp->m_rsumip->i_disk_size = nmp->m_rsumsize;
984 i_size_write(VFS_I(mp->m_rsumip), mp->m_rsumip->i_disk_size);
985 xfs_trans_log_inode(tp, mp->m_rsumip, XFS_ILOG_CORE);
991 mp->m_rsumlevels != nmp->m_rsumlevels) {
1031 * Update mp values into the real mp structure.
1033 mp->m_rsumlevels = nrsumlevels;
1034 mp->m_rsumsize = nrsumsize;
1036 xfs_trans_resv_calc(mp, &mp->m_resv);
1043 mp->m_features |= XFS_FEAT_REALTIME;
1049 error = xfs_update_secondary_sbs(mp);
1053 * Free the fake mp structure.
1062 if (rsum_cache != mp->m_rsum_cache) {
1064 kvfree(mp->m_rsum_cache);
1065 mp->m_rsum_cache = rsum_cache;
1079 struct xfs_mount *mp) /* file system mount structure */
1087 sbp = &mp->m_sb;
1090 if (mp->m_rtdev_targp == NULL) {
1091 xfs_warn(mp,
1095 mp->m_rsumlevels = sbp->sb_rextslog + 1;
1096 rsumblocks = xfs_rtsummary_blockcount(mp, mp->m_rsumlevels,
1097 mp->m_sb.sb_rbmblocks);
1098 mp->m_rsumsize = XFS_FSB_TO_B(mp, rsumblocks);
1099 mp->m_rbmip = mp->m_rsumip = NULL;
1103 d = (xfs_daddr_t)XFS_FSB_TO_BB(mp, mp->m_sb.sb_rblocks);
1104 if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_rblocks) {
1105 xfs_warn(mp, "realtime mount -- %llu != %llu",
1106 (unsigned long long) XFS_BB_TO_FSB(mp, d),
1107 (unsigned long long) mp->m_sb.sb_rblocks);
1110 error = xfs_buf_read_uncached(mp->m_rtdev_targp,
1111 d - XFS_FSB_TO_BB(mp, 1),
1112 XFS_FSB_TO_BB(mp, 1), 0, &bp, NULL);
1114 xfs_warn(mp, "realtime device size check failed");
1123 struct xfs_mount *mp,
1140 struct xfs_mount *mp)
1145 xfs_ilock(mp->m_rbmip, XFS_ILOCK_SHARED | XFS_ILOCK_RTBITMAP);
1146 error = xfs_rtalloc_query_all(mp, NULL, xfs_rtalloc_count_frextent,
1148 xfs_iunlock(mp->m_rbmip, XFS_ILOCK_SHARED | XFS_ILOCK_RTBITMAP);
1152 spin_lock(&mp->m_sb_lock);
1153 mp->m_sb.sb_frextents = val;
1154 spin_unlock(&mp->m_sb_lock);
1155 percpu_counter_set(&mp->m_frextents, mp->m_sb.sb_frextents);
1200 xfs_mount_t *mp) /* file system mount structure */
1205 sbp = &mp->m_sb;
1206 error = xfs_iget(mp, NULL, sbp->sb_rbmino, 0, 0, &mp->m_rbmip);
1208 xfs_rt_mark_sick(mp, XFS_SICK_RT_BITMAP);
1211 ASSERT(mp->m_rbmip != NULL);
1213 error = xfs_rtmount_iread_extents(mp->m_rbmip, XFS_ILOCK_RTBITMAP);
1217 error = xfs_iget(mp, NULL, sbp->sb_rsumino, 0, 0, &mp->m_rsumip);
1219 xfs_rt_mark_sick(mp, XFS_SICK_RT_SUMMARY);
1222 ASSERT(mp->m_rsumip != NULL);
1224 error = xfs_rtmount_iread_extents(mp->m_rsumip, XFS_ILOCK_RTSUM);
1228 xfs_alloc_rsum_cache(mp, sbp->sb_rbmblocks);
1232 xfs_irele(mp->m_rsumip);
1234 xfs_irele(mp->m_rbmip);
1240 struct xfs_mount *mp)
1242 kvfree(mp->m_rsum_cache);
1243 if (mp->m_rbmip)
1244 xfs_irele(mp->m_rbmip);
1245 if (mp->m_rsumip)
1246 xfs_irele(mp->m_rsumip);
1258 xfs_mount_t *mp, /* file system mount point */
1269 xfs_assert_ilocked(mp->m_rbmip, XFS_ILOCK_EXCL);
1271 ts = inode_get_atime(VFS_I(mp->m_rbmip));
1272 if (!(mp->m_rbmip->i_diflags & XFS_DIFLAG_NEWRTBM)) {
1273 mp->m_rbmip->i_diflags |= XFS_DIFLAG_NEWRTBM;
1282 b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >>
1284 if (b >= mp->m_sb.sb_rextents)
1285 div64_u64_rem(b, mp->m_sb.sb_rextents, &b);
1286 if (b + len > mp->m_sb.sb_rextents)
1287 b = mp->m_sb.sb_rextents - len;
1290 inode_set_atime_to_ts(VFS_I(mp->m_rbmip), ts);
1291 xfs_trans_log_inode(tp, mp->m_rbmip, XFS_ILOG_CORE);
1329 struct xfs_mount *mp = ap->ip->i_mount;
1338 xfs_extlen_t minlen = mp->m_sb.sb_rextsize;
1343 .mp = mp,
1350 error = xfs_bmap_extsize_align(mp, &ap->got, &ap->prev,
1356 ASSERT(xfs_extlen_to_rtxmod(mp, ap->length) == 0);
1376 ralen = xfs_extlen_to_rtxlen(mp, min(ap->length, XFS_MAX_BMBT_EXTLEN));
1377 raminlen = max_t(xfs_rtxlen_t, 1, xfs_extlen_to_rtxlen(mp, minlen));
1385 xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL|XFS_ILOCK_RTBITMAP);
1386 xfs_trans_ijoin(ap->tp, mp->m_rbmip, XFS_ILOCK_EXCL);
1387 xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL|XFS_ILOCK_RTSUM);
1388 xfs_trans_ijoin(ap->tp, mp->m_rsumip, XFS_ILOCK_EXCL);
1395 start = xfs_rtb_to_rtx(mp, ap->blkno);
1401 error = xfs_rtpick_extent(mp, ap->tp, ralen, &start);
1416 prod = xfs_extlen_to_rtxlen(mp, align);
1431 if (align > mp->m_sb.sb_rextsize) {
1441 minlen = align = mp->m_sb.sb_rextsize;
1464 ap->blkno = xfs_rtx_to_rtb(mp, rtx);
1465 ap->length = xfs_rtxlen_to_extlen(mp, ralen);