mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
xfs: turn the allocbt cursor active field into a btree flag
Add a new XFS_BTREE_ALLOCBT_ACTIVE flag to replace the active field. 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
73a8fd93c4
commit
b20775ed64
3 changed files with 11 additions and 9 deletions
|
@ -165,7 +165,10 @@ xfs_alloc_lookup(
|
|||
cur->bc_rec.a.ar_startblock = bno;
|
||||
cur->bc_rec.a.ar_blockcount = len;
|
||||
error = xfs_btree_lookup(cur, dir, stat);
|
||||
cur->bc_ag.abt.active = (*stat == 1);
|
||||
if (*stat == 1)
|
||||
cur->bc_flags |= XFS_BTREE_ALLOCBT_ACTIVE;
|
||||
else
|
||||
cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE;
|
||||
return error;
|
||||
}
|
||||
|
||||
|
@ -214,7 +217,7 @@ static inline bool
|
|||
xfs_alloc_cur_active(
|
||||
struct xfs_btree_cur *cur)
|
||||
{
|
||||
return cur && cur->bc_ag.abt.active;
|
||||
return cur && (cur->bc_flags & XFS_BTREE_ALLOCBT_ACTIVE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -992,7 +995,7 @@ xfs_alloc_cur_check(
|
|||
deactivate = true;
|
||||
out:
|
||||
if (deactivate)
|
||||
cur->bc_ag.abt.active = false;
|
||||
cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE;
|
||||
trace_xfs_alloc_cur_check(args->mp, cur->bc_btnum, bno, len, diff,
|
||||
*new);
|
||||
return 0;
|
||||
|
@ -1367,7 +1370,7 @@ xfs_alloc_walk_iter(
|
|||
if (error)
|
||||
return error;
|
||||
if (i == 0)
|
||||
cur->bc_ag.abt.active = false;
|
||||
cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE;
|
||||
|
||||
if (count > 0)
|
||||
count--;
|
||||
|
@ -1481,7 +1484,7 @@ xfs_alloc_ag_vextent_locality(
|
|||
if (error)
|
||||
return error;
|
||||
if (i) {
|
||||
acur->cnt->bc_ag.abt.active = true;
|
||||
acur->cnt->bc_flags |= XFS_BTREE_ALLOCBT_ACTIVE;
|
||||
fbcur = acur->cnt;
|
||||
fbinc = false;
|
||||
}
|
||||
|
|
|
@ -523,7 +523,6 @@ xfs_allocbt_init_common(
|
|||
mp->m_alloc_maxlevels, xfs_allocbt_cur_cache);
|
||||
cur->bc_statoff = XFS_STATS_CALC_INDEX(xs_abtb_2);
|
||||
}
|
||||
cur->bc_ag.abt.active = false;
|
||||
|
||||
cur->bc_ag.pag = xfs_perag_hold(pag);
|
||||
|
||||
|
|
|
@ -236,9 +236,6 @@ struct xfs_btree_cur_ag {
|
|||
unsigned int nr_ops; /* # record updates */
|
||||
unsigned int shape_changes; /* # of extent splits */
|
||||
} refc;
|
||||
struct {
|
||||
bool active; /* allocation cursor state */
|
||||
} abt;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -321,6 +318,9 @@ xfs_btree_cur_sizeof(unsigned int nlevels)
|
|||
/* For extent swap, ignore owner check in verifier (only for bmbt btrees) */
|
||||
#define XFS_BTREE_BMBT_INVALID_OWNER (1U << 2)
|
||||
|
||||
/* Cursor is active (only for allocbt btrees) */
|
||||
#define XFS_BTREE_ALLOCBT_ACTIVE (1U << 3)
|
||||
|
||||
#define XFS_BTREE_NOERROR 0
|
||||
#define XFS_BTREE_ERROR 1
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue