mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
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 <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
bde86b42d2
commit
5a7566c8d6
@ -1149,13 +1149,23 @@ xfs_rtalloc_extent_is_free(
|
||||
* extents.
|
||||
*/
|
||||
xfs_filblks_t
|
||||
xfs_rtbitmap_blockcount(
|
||||
xfs_rtbitmap_blockcount_len(
|
||||
struct xfs_mount *mp,
|
||||
xfs_rtbxlen_t rtextents)
|
||||
{
|
||||
return howmany_64(rtextents, NBBY * mp->m_sb.sb_blocksize);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compute the number of rtbitmap blocks used for a given file system.
|
||||
*/
|
||||
xfs_filblks_t
|
||||
xfs_rtbitmap_blockcount(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
return xfs_rtbitmap_blockcount_len(mp, mp->m_sb.sb_rextents);
|
||||
}
|
||||
|
||||
/* Compute the number of rtsummary blocks needed to track the given rt space. */
|
||||
xfs_filblks_t
|
||||
xfs_rtsummary_blockcount(
|
||||
|
@ -307,8 +307,9 @@ int xfs_rtfree_extent(struct xfs_trans *tp, struct xfs_rtgroup *rtg,
|
||||
int xfs_rtfree_blocks(struct xfs_trans *tp, struct xfs_rtgroup *rtg,
|
||||
xfs_fsblock_t rtbno, xfs_filblks_t rtlen);
|
||||
|
||||
xfs_filblks_t xfs_rtbitmap_blockcount(struct xfs_mount *mp, xfs_rtbxlen_t
|
||||
rtextents);
|
||||
xfs_filblks_t xfs_rtbitmap_blockcount(struct xfs_mount *mp);
|
||||
xfs_filblks_t xfs_rtbitmap_blockcount_len(struct xfs_mount *mp,
|
||||
xfs_rtbxlen_t rtextents);
|
||||
xfs_filblks_t xfs_rtsummary_blockcount(struct xfs_mount *mp,
|
||||
unsigned int rsumlevels, xfs_extlen_t rbmblocks);
|
||||
|
||||
@ -336,7 +337,7 @@ static inline int xfs_rtfree_blocks(struct xfs_trans *tp,
|
||||
# define xfs_rtbuf_cache_relse(a) (0)
|
||||
# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS)
|
||||
static inline xfs_filblks_t
|
||||
xfs_rtbitmap_blockcount(struct xfs_mount *mp, xfs_rtbxlen_t rtextents)
|
||||
xfs_rtbitmap_blockcount_len(struct xfs_mount *mp, xfs_rtbxlen_t rtextents)
|
||||
{
|
||||
/* shut up gcc */
|
||||
return 0;
|
||||
|
@ -224,7 +224,7 @@ xfs_rtalloc_block_count(
|
||||
xfs_rtxlen_t rtxlen;
|
||||
|
||||
rtxlen = xfs_extlen_to_rtxlen(mp, XFS_MAX_BMBT_EXTLEN);
|
||||
rtbmp_blocks = xfs_rtbitmap_blockcount(mp, rtxlen);
|
||||
rtbmp_blocks = xfs_rtbitmap_blockcount_len(mp, rtxlen);
|
||||
return (rtbmp_blocks + 1) * num_ops;
|
||||
}
|
||||
|
||||
|
@ -67,8 +67,7 @@ xchk_setup_rtbitmap(
|
||||
if (mp->m_sb.sb_rblocks) {
|
||||
rtb->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
|
||||
rtb->rextslog = xfs_compute_rextslog(rtb->rextents);
|
||||
rtb->rbmblocks = xfs_rtbitmap_blockcount(mp,
|
||||
mp->m_sb.sb_rextents);
|
||||
rtb->rbmblocks = xfs_rtbitmap_blockcount(mp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -107,8 +107,7 @@ xchk_setup_rtsummary(
|
||||
rts->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
|
||||
rextslog = xfs_compute_rextslog(mp->m_sb.sb_rextents);
|
||||
rts->rsumlevels = rextslog + 1;
|
||||
rts->rbmblocks = xfs_rtbitmap_blockcount(mp,
|
||||
mp->m_sb.sb_rextents);
|
||||
rts->rbmblocks = xfs_rtbitmap_blockcount(mp);
|
||||
rts->rsumblocks = xfs_rtsummary_blockcount(mp, rts->rsumlevels,
|
||||
rts->rbmblocks);
|
||||
}
|
||||
@ -215,11 +214,9 @@ xchk_rtsum_compute(
|
||||
{
|
||||
struct xfs_mount *mp = sc->mp;
|
||||
struct xfs_rtgroup *rtg = sc->sr.rtg;
|
||||
unsigned long long rtbmp_blocks;
|
||||
|
||||
/* If the bitmap size doesn't match the computed size, bail. */
|
||||
rtbmp_blocks = xfs_rtbitmap_blockcount(mp, mp->m_sb.sb_rextents);
|
||||
if (XFS_FSB_TO_B(mp, rtbmp_blocks) !=
|
||||
if (XFS_FSB_TO_B(mp, xfs_rtbitmap_blockcount(mp)) !=
|
||||
rtg->rtg_inodes[XFS_RTGI_BITMAP]->i_disk_size)
|
||||
return -EFSCORRUPTED;
|
||||
|
||||
|
@ -749,8 +749,7 @@ xfs_growfs_rt_alloc_fake_mount(
|
||||
xfs_mount_sb_set_rextsize(nmp, &nmp->m_sb);
|
||||
nmp->m_sb.sb_rblocks = rblocks;
|
||||
nmp->m_sb.sb_rextents = xfs_rtb_to_rtx(nmp, nmp->m_sb.sb_rblocks);
|
||||
nmp->m_sb.sb_rbmblocks = xfs_rtbitmap_blockcount(nmp,
|
||||
nmp->m_sb.sb_rextents);
|
||||
nmp->m_sb.sb_rbmblocks = xfs_rtbitmap_blockcount(nmp);
|
||||
nmp->m_sb.sb_rextslog = xfs_compute_rextslog(nmp->m_sb.sb_rextents);
|
||||
nmp->m_rsumlevels = nmp->m_sb.sb_rextslog + 1;
|
||||
nmp->m_rsumblocks = xfs_rtsummary_blockcount(nmp, nmp->m_rsumlevels,
|
||||
|
Loading…
Reference in New Issue
Block a user