diff options
| author | Dave Chinner <dchinner@redhat.com> | 2021-06-02 10:48:24 +1000 | 
|---|---|---|
| committer | Dave Chinner <david@fromorbit.com> | 2021-06-02 10:48:24 +1000 | 
| commit | 289d38d22cd88960cb648dc480c50de5102519bb (patch) | |
| tree | 256dcacf323eaa033ac8d2a8609d69cce6ed533d /fs/xfs/libxfs/xfs_alloc_btree.c | |
| parent | a81a06211fb43d80ee746e7a40a32ed812002f8e (diff) | |
xfs: convert allocbt cursors to use perags
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/libxfs/xfs_alloc_btree.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_alloc_btree.c | 26 | 
1 files changed, 10 insertions, 16 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc_btree.c b/fs/xfs/libxfs/xfs_alloc_btree.c index a52ab25bbf0b..0c2e4cff4ee3 100644 --- a/fs/xfs/libxfs/xfs_alloc_btree.c +++ b/fs/xfs/libxfs/xfs_alloc_btree.c @@ -26,8 +26,7 @@ xfs_allocbt_dup_cursor(  	struct xfs_btree_cur	*cur)  {  	return xfs_allocbt_init_cursor(cur->bc_mp, cur->bc_tp, -			cur->bc_ag.agbp, cur->bc_ag.agno, -			cur->bc_ag.pag, cur->bc_btnum); +			cur->bc_ag.agbp, cur->bc_ag.pag, cur->bc_btnum);  }  STATIC void @@ -39,13 +38,12 @@ xfs_allocbt_set_root(  	struct xfs_buf		*agbp = cur->bc_ag.agbp;  	struct xfs_agf		*agf = agbp->b_addr;  	int			btnum = cur->bc_btnum; -	struct xfs_perag	*pag = agbp->b_pag;  	ASSERT(ptr->s != 0);  	agf->agf_roots[btnum] = ptr->s;  	be32_add_cpu(&agf->agf_levels[btnum], inc); -	pag->pagf_levels[btnum] += inc; +	cur->bc_ag.pag->pagf_levels[btnum] += inc;  	xfs_alloc_log_agf(cur->bc_tp, agbp, XFS_AGF_ROOTS | XFS_AGF_LEVELS);  } @@ -224,7 +222,7 @@ xfs_allocbt_init_ptr_from_cur(  {  	struct xfs_agf		*agf = cur->bc_ag.agbp->b_addr; -	ASSERT(cur->bc_ag.agno == be32_to_cpu(agf->agf_seqno)); +	ASSERT(cur->bc_ag.pag->pag_agno == be32_to_cpu(agf->agf_seqno));  	ptr->s = agf->agf_roots[cur->bc_btnum];  } @@ -472,7 +470,6 @@ STATIC struct xfs_btree_cur *  xfs_allocbt_init_common(  	struct xfs_mount	*mp,  	struct xfs_trans	*tp, -	xfs_agnumber_t		agno,  	struct xfs_perag	*pag,  	xfs_btnum_t		btnum)  { @@ -486,6 +483,7 @@ xfs_allocbt_init_common(  	cur->bc_mp = mp;  	cur->bc_btnum = btnum;  	cur->bc_blocklog = mp->m_sb.sb_blocklog; +	cur->bc_ag.abt.active = false;  	if (btnum == XFS_BTNUM_CNT) {  		cur->bc_ops = &xfs_cntbt_ops; @@ -496,13 +494,10 @@ xfs_allocbt_init_common(  		cur->bc_statoff = XFS_STATS_CALC_INDEX(xs_abtb_2);  	} -	cur->bc_ag.agno = agno; -	cur->bc_ag.abt.active = false; -	if (pag) { -		/* take a reference for the cursor */ -		atomic_inc(&pag->pag_ref); -	} +	/* take a reference for the cursor */ +	atomic_inc(&pag->pag_ref);  	cur->bc_ag.pag = pag; +	cur->bc_ag.agno = pag->pag_agno;  	if (xfs_sb_version_hascrc(&mp->m_sb))  		cur->bc_flags |= XFS_BTREE_CRC_BLOCKS; @@ -518,14 +513,13 @@ xfs_allocbt_init_cursor(  	struct xfs_mount	*mp,		/* file system mount point */  	struct xfs_trans	*tp,		/* transaction pointer */  	struct xfs_buf		*agbp,		/* buffer for agf structure */ -	xfs_agnumber_t		agno,		/* allocation group number */  	struct xfs_perag	*pag,  	xfs_btnum_t		btnum)		/* btree identifier */  {  	struct xfs_agf		*agf = agbp->b_addr;  	struct xfs_btree_cur	*cur; -	cur = xfs_allocbt_init_common(mp, tp, agno, pag, btnum); +	cur = xfs_allocbt_init_common(mp, tp, pag, btnum);  	if (btnum == XFS_BTNUM_CNT)  		cur->bc_nlevels = be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]);  	else @@ -541,12 +535,12 @@ struct xfs_btree_cur *  xfs_allocbt_stage_cursor(  	struct xfs_mount	*mp,  	struct xbtree_afakeroot	*afake, -	xfs_agnumber_t		agno, +	struct xfs_perag	*pag,  	xfs_btnum_t		btnum)  {  	struct xfs_btree_cur	*cur; -	cur = xfs_allocbt_init_common(mp, NULL, agno, NULL, btnum); +	cur = xfs_allocbt_init_common(mp, NULL, pag, btnum);  	xfs_btree_stage_afakeroot(cur, afake);  	return cur;  }  | 
