Commit b20775ed authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong

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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent 73a8fd93
...@@ -165,7 +165,10 @@ xfs_alloc_lookup( ...@@ -165,7 +165,10 @@ xfs_alloc_lookup(
cur->bc_rec.a.ar_startblock = bno; cur->bc_rec.a.ar_startblock = bno;
cur->bc_rec.a.ar_blockcount = len; cur->bc_rec.a.ar_blockcount = len;
error = xfs_btree_lookup(cur, dir, stat); 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; return error;
} }
...@@ -214,7 +217,7 @@ static inline bool ...@@ -214,7 +217,7 @@ static inline bool
xfs_alloc_cur_active( xfs_alloc_cur_active(
struct xfs_btree_cur *cur) 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( ...@@ -992,7 +995,7 @@ xfs_alloc_cur_check(
deactivate = true; deactivate = true;
out: out:
if (deactivate) 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, trace_xfs_alloc_cur_check(args->mp, cur->bc_btnum, bno, len, diff,
*new); *new);
return 0; return 0;
...@@ -1367,7 +1370,7 @@ xfs_alloc_walk_iter( ...@@ -1367,7 +1370,7 @@ xfs_alloc_walk_iter(
if (error) if (error)
return error; return error;
if (i == 0) if (i == 0)
cur->bc_ag.abt.active = false; cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE;
if (count > 0) if (count > 0)
count--; count--;
...@@ -1481,7 +1484,7 @@ xfs_alloc_ag_vextent_locality( ...@@ -1481,7 +1484,7 @@ xfs_alloc_ag_vextent_locality(
if (error) if (error)
return error; return error;
if (i) { if (i) {
acur->cnt->bc_ag.abt.active = true; acur->cnt->bc_flags |= XFS_BTREE_ALLOCBT_ACTIVE;
fbcur = acur->cnt; fbcur = acur->cnt;
fbinc = false; fbinc = false;
} }
......
...@@ -523,7 +523,6 @@ xfs_allocbt_init_common( ...@@ -523,7 +523,6 @@ xfs_allocbt_init_common(
mp->m_alloc_maxlevels, xfs_allocbt_cur_cache); mp->m_alloc_maxlevels, xfs_allocbt_cur_cache);
cur->bc_statoff = XFS_STATS_CALC_INDEX(xs_abtb_2); cur->bc_statoff = XFS_STATS_CALC_INDEX(xs_abtb_2);
} }
cur->bc_ag.abt.active = false;
cur->bc_ag.pag = xfs_perag_hold(pag); cur->bc_ag.pag = xfs_perag_hold(pag);
......
...@@ -236,9 +236,6 @@ struct xfs_btree_cur_ag { ...@@ -236,9 +236,6 @@ struct xfs_btree_cur_ag {
unsigned int nr_ops; /* # record updates */ unsigned int nr_ops; /* # record updates */
unsigned int shape_changes; /* # of extent splits */ unsigned int shape_changes; /* # of extent splits */
} refc; } refc;
struct {
bool active; /* allocation cursor state */
} abt;
}; };
}; };
...@@ -321,6 +318,9 @@ xfs_btree_cur_sizeof(unsigned int nlevels) ...@@ -321,6 +318,9 @@ xfs_btree_cur_sizeof(unsigned int nlevels)
/* For extent swap, ignore owner check in verifier (only for bmbt btrees) */ /* For extent swap, ignore owner check in verifier (only for bmbt btrees) */
#define XFS_BTREE_BMBT_INVALID_OWNER (1U << 2) #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_NOERROR 0
#define XFS_BTREE_ERROR 1 #define XFS_BTREE_ERROR 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment