mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-19 14:56:21 +00:00
xfs: convert do_div calls to xfs_rtb_to_rtx helper calls
Convert these calls to use the helpers, and clean up all these places where the same variable can have different units depending on where it is in the function. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
5dc3a80d46
commit
055641248f
@ -4826,12 +4826,8 @@ xfs_bmap_del_extent_delay(
|
||||
ASSERT(got->br_startoff <= del->br_startoff);
|
||||
ASSERT(got_endoff >= del_endoff);
|
||||
|
||||
if (isrt) {
|
||||
uint64_t rtexts = del->br_blockcount;
|
||||
|
||||
do_div(rtexts, mp->m_sb.sb_rextsize);
|
||||
xfs_mod_frextents(mp, rtexts);
|
||||
}
|
||||
if (isrt)
|
||||
xfs_mod_frextents(mp, xfs_rtb_to_rtx(mp, del->br_blockcount));
|
||||
|
||||
/*
|
||||
* Update the inode delalloc counter now and wait to update the
|
||||
|
@ -70,6 +70,20 @@ xfs_rtb_to_rtxrem(
|
||||
return div_u64_rem(rtbno, mp->m_sb.sb_rextsize, off);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert an rt block number into an rt extent number, rounding up to the next
|
||||
* rt extent if the rt block is not aligned to an rt extent boundary.
|
||||
*/
|
||||
static inline xfs_rtxnum_t
|
||||
xfs_rtb_to_rtxup(
|
||||
struct xfs_mount *mp,
|
||||
xfs_rtblock_t rtbno)
|
||||
{
|
||||
if (do_div(rtbno, mp->m_sb.sb_rextsize))
|
||||
rtbno++;
|
||||
return rtbno;
|
||||
}
|
||||
|
||||
/*
|
||||
* Functions for walking free space rtextents in the realtime bitmap.
|
||||
*/
|
||||
|
@ -128,26 +128,22 @@ out:
|
||||
void
|
||||
xchk_xref_is_used_rt_space(
|
||||
struct xfs_scrub *sc,
|
||||
xfs_rtblock_t fsbno,
|
||||
xfs_rtblock_t rtbno,
|
||||
xfs_extlen_t len)
|
||||
{
|
||||
xfs_rtxnum_t startext;
|
||||
xfs_rtxnum_t endext;
|
||||
xfs_rtxlen_t extcount;
|
||||
bool is_free;
|
||||
int error;
|
||||
|
||||
if (xchk_skip_xref(sc->sm))
|
||||
return;
|
||||
|
||||
startext = fsbno;
|
||||
endext = fsbno + len - 1;
|
||||
do_div(startext, sc->mp->m_sb.sb_rextsize);
|
||||
do_div(endext, sc->mp->m_sb.sb_rextsize);
|
||||
extcount = endext - startext + 1;
|
||||
startext = xfs_rtb_to_rtx(sc->mp, rtbno);
|
||||
endext = xfs_rtb_to_rtx(sc->mp, rtbno + len - 1);
|
||||
xfs_ilock(sc->mp->m_rbmip, XFS_ILOCK_SHARED | XFS_ILOCK_RTBITMAP);
|
||||
error = xfs_rtalloc_extent_is_free(sc->mp, sc->tp, startext, extcount,
|
||||
&is_free);
|
||||
error = xfs_rtalloc_extent_is_free(sc->mp, sc->tp, startext,
|
||||
endext - startext + 1, &is_free);
|
||||
if (!xchk_should_check_xref(sc, &error, NULL))
|
||||
goto out_unlock;
|
||||
if (is_free)
|
||||
|
@ -156,14 +156,12 @@ retry:
|
||||
* Realtime allocation, done through xfs_rtallocate_extent.
|
||||
*/
|
||||
if (ignore_locality)
|
||||
ap->blkno = 0;
|
||||
rtx = 0;
|
||||
else
|
||||
do_div(ap->blkno, mp->m_sb.sb_rextsize);
|
||||
rtx = ap->blkno;
|
||||
ap->length = ralen;
|
||||
rtx = xfs_rtb_to_rtx(mp, ap->blkno);
|
||||
raminlen = max_t(xfs_rtxlen_t, 1, xfs_extlen_to_rtxlen(mp, minlen));
|
||||
error = xfs_rtallocate_extent(ap->tp, ap->blkno, raminlen, ap->length,
|
||||
&ralen, ap->wasdel, prod, &rtx);
|
||||
error = xfs_rtallocate_extent(ap->tp, rtx, raminlen, ralen, &ralen,
|
||||
ap->wasdel, prod, &rtx);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
|
@ -539,11 +539,8 @@ xfs_getfsmap_rtdev_rtbitmap(
|
||||
* Set up query parameters to return free rtextents covering the range
|
||||
* we want.
|
||||
*/
|
||||
alow.ar_startext = start_rtb;
|
||||
ahigh.ar_startext = end_rtb;
|
||||
do_div(alow.ar_startext, mp->m_sb.sb_rextsize);
|
||||
if (do_div(ahigh.ar_startext, mp->m_sb.sb_rextsize))
|
||||
ahigh.ar_startext++;
|
||||
alow.ar_startext = xfs_rtb_to_rtx(mp, start_rtb);
|
||||
ahigh.ar_startext = xfs_rtb_to_rtxup(mp, end_rtb);
|
||||
error = xfs_rtalloc_query_range(mp, tp, &alow, &ahigh,
|
||||
xfs_getfsmap_rtdev_rtbitmap_helper, info);
|
||||
if (error)
|
||||
|
@ -1058,8 +1058,7 @@ xfs_growfs_rt(
|
||||
nrblocks_step = (bmbno + 1) * NBBY * nsbp->sb_blocksize *
|
||||
nsbp->sb_rextsize;
|
||||
nsbp->sb_rblocks = min(nrblocks, nrblocks_step);
|
||||
nsbp->sb_rextents = nsbp->sb_rblocks;
|
||||
do_div(nsbp->sb_rextents, nsbp->sb_rextsize);
|
||||
nsbp->sb_rextents = xfs_rtb_to_rtx(nmp, nsbp->sb_rblocks);
|
||||
ASSERT(nsbp->sb_rextents != 0);
|
||||
nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents);
|
||||
nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user