Skip to content

Commit 5a7566c

Browse files
Christoph HellwigDarrick J. Wong
authored andcommitted
xfs: refactor xfs_rtbitmap_blockcount
Rename the existing xfs_rtbitmap_blockcount to xfs_rtbitmap_blockcount_len and add a new xfs_rtbitmap_blockcount wrapper around it that takes the number of extents from the mount structure. This will simplify the move to per-rtgroup bitmaps as those will need to pass in the number of extents per rtgroup instead. Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Darrick J. Wong <[email protected]> Signed-off-by: Darrick J. Wong <[email protected]>
1 parent bde86b4 commit 5a7566c

File tree

6 files changed

+20
-14
lines changed

6 files changed

+20
-14
lines changed

fs/xfs/libxfs/xfs_rtbitmap.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,13 +1149,23 @@ xfs_rtalloc_extent_is_free(
11491149
* extents.
11501150
*/
11511151
xfs_filblks_t
1152-
xfs_rtbitmap_blockcount(
1152+
xfs_rtbitmap_blockcount_len(
11531153
struct xfs_mount *mp,
11541154
xfs_rtbxlen_t rtextents)
11551155
{
11561156
return howmany_64(rtextents, NBBY * mp->m_sb.sb_blocksize);
11571157
}
11581158

1159+
/*
1160+
* Compute the number of rtbitmap blocks used for a given file system.
1161+
*/
1162+
xfs_filblks_t
1163+
xfs_rtbitmap_blockcount(
1164+
struct xfs_mount *mp)
1165+
{
1166+
return xfs_rtbitmap_blockcount_len(mp, mp->m_sb.sb_rextents);
1167+
}
1168+
11591169
/* Compute the number of rtsummary blocks needed to track the given rt space. */
11601170
xfs_filblks_t
11611171
xfs_rtsummary_blockcount(

fs/xfs/libxfs/xfs_rtbitmap.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,9 @@ int xfs_rtfree_extent(struct xfs_trans *tp, struct xfs_rtgroup *rtg,
307307
int xfs_rtfree_blocks(struct xfs_trans *tp, struct xfs_rtgroup *rtg,
308308
xfs_fsblock_t rtbno, xfs_filblks_t rtlen);
309309

310-
xfs_filblks_t xfs_rtbitmap_blockcount(struct xfs_mount *mp, xfs_rtbxlen_t
311-
rtextents);
310+
xfs_filblks_t xfs_rtbitmap_blockcount(struct xfs_mount *mp);
311+
xfs_filblks_t xfs_rtbitmap_blockcount_len(struct xfs_mount *mp,
312+
xfs_rtbxlen_t rtextents);
312313
xfs_filblks_t xfs_rtsummary_blockcount(struct xfs_mount *mp,
313314
unsigned int rsumlevels, xfs_extlen_t rbmblocks);
314315

@@ -336,7 +337,7 @@ static inline int xfs_rtfree_blocks(struct xfs_trans *tp,
336337
# define xfs_rtbuf_cache_relse(a) (0)
337338
# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS)
338339
static inline xfs_filblks_t
339-
xfs_rtbitmap_blockcount(struct xfs_mount *mp, xfs_rtbxlen_t rtextents)
340+
xfs_rtbitmap_blockcount_len(struct xfs_mount *mp, xfs_rtbxlen_t rtextents)
340341
{
341342
/* shut up gcc */
342343
return 0;

fs/xfs/libxfs/xfs_trans_resv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ xfs_rtalloc_block_count(
224224
xfs_rtxlen_t rtxlen;
225225

226226
rtxlen = xfs_extlen_to_rtxlen(mp, XFS_MAX_BMBT_EXTLEN);
227-
rtbmp_blocks = xfs_rtbitmap_blockcount(mp, rtxlen);
227+
rtbmp_blocks = xfs_rtbitmap_blockcount_len(mp, rtxlen);
228228
return (rtbmp_blocks + 1) * num_ops;
229229
}
230230

fs/xfs/scrub/rtbitmap.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ xchk_setup_rtbitmap(
6767
if (mp->m_sb.sb_rblocks) {
6868
rtb->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
6969
rtb->rextslog = xfs_compute_rextslog(rtb->rextents);
70-
rtb->rbmblocks = xfs_rtbitmap_blockcount(mp,
71-
mp->m_sb.sb_rextents);
70+
rtb->rbmblocks = xfs_rtbitmap_blockcount(mp);
7271
}
7372

7473
return 0;

fs/xfs/scrub/rtsummary.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ xchk_setup_rtsummary(
107107
rts->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
108108
rextslog = xfs_compute_rextslog(mp->m_sb.sb_rextents);
109109
rts->rsumlevels = rextslog + 1;
110-
rts->rbmblocks = xfs_rtbitmap_blockcount(mp,
111-
mp->m_sb.sb_rextents);
110+
rts->rbmblocks = xfs_rtbitmap_blockcount(mp);
112111
rts->rsumblocks = xfs_rtsummary_blockcount(mp, rts->rsumlevels,
113112
rts->rbmblocks);
114113
}
@@ -215,11 +214,9 @@ xchk_rtsum_compute(
215214
{
216215
struct xfs_mount *mp = sc->mp;
217216
struct xfs_rtgroup *rtg = sc->sr.rtg;
218-
unsigned long long rtbmp_blocks;
219217

220218
/* If the bitmap size doesn't match the computed size, bail. */
221-
rtbmp_blocks = xfs_rtbitmap_blockcount(mp, mp->m_sb.sb_rextents);
222-
if (XFS_FSB_TO_B(mp, rtbmp_blocks) !=
219+
if (XFS_FSB_TO_B(mp, xfs_rtbitmap_blockcount(mp)) !=
223220
rtg->rtg_inodes[XFS_RTGI_BITMAP]->i_disk_size)
224221
return -EFSCORRUPTED;
225222

fs/xfs/xfs_rtalloc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,8 +749,7 @@ xfs_growfs_rt_alloc_fake_mount(
749749
xfs_mount_sb_set_rextsize(nmp, &nmp->m_sb);
750750
nmp->m_sb.sb_rblocks = rblocks;
751751
nmp->m_sb.sb_rextents = xfs_rtb_to_rtx(nmp, nmp->m_sb.sb_rblocks);
752-
nmp->m_sb.sb_rbmblocks = xfs_rtbitmap_blockcount(nmp,
753-
nmp->m_sb.sb_rextents);
752+
nmp->m_sb.sb_rbmblocks = xfs_rtbitmap_blockcount(nmp);
754753
nmp->m_sb.sb_rextslog = xfs_compute_rextslog(nmp->m_sb.sb_rextents);
755754
nmp->m_rsumlevels = nmp->m_sb.sb_rextslog + 1;
756755
nmp->m_rsumblocks = xfs_rtsummary_blockcount(nmp, nmp->m_rsumlevels,

0 commit comments

Comments
 (0)