Skip to content

Commit 1a9d262

Browse files
author
Darrick J. Wong
committed
xfs: store the btree pointer length in struct xfs_btree_ops
Make the pointer length an explicit field in the btree operations structure so that the next patch (which introduces an explicit btree type enum) doesn't have to play a bunch of awkward games with inferring the pointer length from the enumeration. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
1 parent 186f20c commit 1a9d262

10 files changed

Lines changed: 53 additions & 49 deletions

File tree

fs/xfs/libxfs/xfs_alloc_btree.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ xfs_allocbt_keys_contiguous(
457457
const struct xfs_btree_ops xfs_bnobt_ops = {
458458
.rec_len = sizeof(xfs_alloc_rec_t),
459459
.key_len = sizeof(xfs_alloc_key_t),
460+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
460461

461462
.lru_refs = XFS_ALLOC_BTREE_REF,
462463
.statoff = XFS_STATS_CALC_INDEX(xs_abtb_2),
@@ -485,6 +486,7 @@ const struct xfs_btree_ops xfs_cntbt_ops = {
485486

486487
.rec_len = sizeof(xfs_alloc_rec_t),
487488
.key_len = sizeof(xfs_alloc_key_t),
489+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
488490

489491
.lru_refs = XFS_ALLOC_BTREE_REF,
490492
.statoff = XFS_STATS_CALC_INDEX(xs_abtc_2),

fs/xfs/libxfs/xfs_bmap_btree.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,10 +525,11 @@ xfs_bmbt_keys_contiguous(
525525
}
526526

527527
const struct xfs_btree_ops xfs_bmbt_ops = {
528-
.geom_flags = XFS_BTGEO_LONG_PTRS | XFS_BTGEO_ROOT_IN_INODE,
528+
.geom_flags = XFS_BTGEO_ROOT_IN_INODE,
529529

530530
.rec_len = sizeof(xfs_bmbt_rec_t),
531531
.key_len = sizeof(xfs_bmbt_key_t),
532+
.ptr_len = XFS_BTREE_LONG_PTR_LEN,
532533

533534
.lru_refs = XFS_BMAP_BTREE_REF,
534535
.statoff = XFS_STATS_CALC_INDEX(xs_bmbt_2),

fs/xfs/libxfs/xfs_btree.c

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ xfs_btree_check_block(
252252
int level, /* level of the btree block */
253253
struct xfs_buf *bp) /* buffer containing block, if any */
254254
{
255-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
255+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
256256
return xfs_btree_check_lblock(cur, block, level, bp);
257257
else
258258
return xfs_btree_check_sblock(cur, block, level, bp);
@@ -293,7 +293,7 @@ xfs_btree_check_ptr(
293293
int index,
294294
int level)
295295
{
296-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
296+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
297297
if (xfs_btree_check_lptr(cur, be64_to_cpu((&ptr->l)[index]),
298298
level))
299299
return 0;
@@ -449,7 +449,7 @@ xfs_btree_del_cursor(
449449
xfs_is_shutdown(cur->bc_mp) || error != 0);
450450
if (unlikely(cur->bc_flags & XFS_BTREE_STAGING))
451451
kfree(cur->bc_ops);
452-
if (!(cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) && cur->bc_ag.pag)
452+
if (!(cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) && cur->bc_ag.pag)
453453
xfs_perag_put(cur->bc_ag.pag);
454454
kmem_cache_free(cur->bc_cache, cur);
455455
}
@@ -588,7 +588,7 @@ xfs_btree_dup_cursor(
588588
*/
589589
static inline size_t xfs_btree_block_len(struct xfs_btree_cur *cur)
590590
{
591-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
591+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
592592
if (xfs_has_crc(cur->bc_mp))
593593
return XFS_BTREE_LBLOCK_CRC_LEN;
594594
return XFS_BTREE_LBLOCK_LEN;
@@ -598,15 +598,6 @@ static inline size_t xfs_btree_block_len(struct xfs_btree_cur *cur)
598598
return XFS_BTREE_SBLOCK_LEN;
599599
}
600600

601-
/*
602-
* Return size of btree block pointers for this btree instance.
603-
*/
604-
static inline size_t xfs_btree_ptr_len(struct xfs_btree_cur *cur)
605-
{
606-
return (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) ?
607-
sizeof(__be64) : sizeof(__be32);
608-
}
609-
610601
/*
611602
* Calculate offset of the n-th record in a btree block.
612603
*/
@@ -654,7 +645,7 @@ xfs_btree_ptr_offset(
654645
{
655646
return xfs_btree_block_len(cur) +
656647
cur->bc_ops->get_maxrecs(cur, level) * cur->bc_ops->key_len +
657-
(n - 1) * xfs_btree_ptr_len(cur);
648+
(n - 1) * cur->bc_ops->ptr_len;
658649
}
659650

660651
/*
@@ -1002,7 +993,7 @@ xfs_btree_readahead(
1002993
cur->bc_levels[lev].ra |= lr;
1003994
block = XFS_BUF_TO_BLOCK(cur->bc_levels[lev].bp);
1004995

1005-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
996+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
1006997
return xfs_btree_readahead_lblock(cur, lr, block);
1007998
return xfs_btree_readahead_sblock(cur, lr, block);
1008999
}
@@ -1021,7 +1012,7 @@ xfs_btree_ptr_to_daddr(
10211012
if (error)
10221013
return error;
10231014

1024-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1015+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
10251016
fsbno = be64_to_cpu(ptr->l);
10261017
*daddr = XFS_FSB_TO_DADDR(cur->bc_mp, fsbno);
10271018
} else {
@@ -1071,7 +1062,7 @@ xfs_btree_setbuf(
10711062
cur->bc_levels[lev].ra = 0;
10721063

10731064
b = XFS_BUF_TO_BLOCK(bp);
1074-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1065+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
10751066
if (b->bb_u.l.bb_leftsib == cpu_to_be64(NULLFSBLOCK))
10761067
cur->bc_levels[lev].ra |= XFS_BTCUR_LEFTRA;
10771068
if (b->bb_u.l.bb_rightsib == cpu_to_be64(NULLFSBLOCK))
@@ -1089,7 +1080,7 @@ xfs_btree_ptr_is_null(
10891080
struct xfs_btree_cur *cur,
10901081
const union xfs_btree_ptr *ptr)
10911082
{
1092-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
1083+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
10931084
return ptr->l == cpu_to_be64(NULLFSBLOCK);
10941085
else
10951086
return ptr->s == cpu_to_be32(NULLAGBLOCK);
@@ -1100,7 +1091,7 @@ xfs_btree_set_ptr_null(
11001091
struct xfs_btree_cur *cur,
11011092
union xfs_btree_ptr *ptr)
11021093
{
1103-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
1094+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
11041095
ptr->l = cpu_to_be64(NULLFSBLOCK);
11051096
else
11061097
ptr->s = cpu_to_be32(NULLAGBLOCK);
@@ -1118,7 +1109,7 @@ xfs_btree_get_sibling(
11181109
{
11191110
ASSERT(lr == XFS_BB_LEFTSIB || lr == XFS_BB_RIGHTSIB);
11201111

1121-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1112+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
11221113
if (lr == XFS_BB_RIGHTSIB)
11231114
ptr->l = block->bb_u.l.bb_rightsib;
11241115
else
@@ -1140,7 +1131,7 @@ xfs_btree_set_sibling(
11401131
{
11411132
ASSERT(lr == XFS_BB_LEFTSIB || lr == XFS_BB_RIGHTSIB);
11421133

1143-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1134+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
11441135
if (lr == XFS_BB_RIGHTSIB)
11451136
block->bb_u.l.bb_rightsib = ptr->l;
11461137
else
@@ -1170,7 +1161,7 @@ __xfs_btree_init_block(
11701161
buf->bb_level = cpu_to_be16(level);
11711162
buf->bb_numrecs = cpu_to_be16(numrecs);
11721163

1173-
if (ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1164+
if (ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
11741165
buf->bb_u.l.bb_leftsib = cpu_to_be64(NULLFSBLOCK);
11751166
buf->bb_u.l.bb_rightsib = cpu_to_be64(NULLFSBLOCK);
11761167
if (crc) {
@@ -1272,7 +1263,7 @@ xfs_btree_buf_to_ptr(
12721263
struct xfs_buf *bp,
12731264
union xfs_btree_ptr *ptr)
12741265
{
1275-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
1266+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
12761267
ptr->l = cpu_to_be64(XFS_DADDR_TO_FSB(cur->bc_mp,
12771268
xfs_buf_daddr(bp)));
12781269
else {
@@ -1387,7 +1378,7 @@ xfs_btree_copy_ptrs(
13871378
int numptrs)
13881379
{
13891380
ASSERT(numptrs >= 0);
1390-
memcpy(dst_ptr, src_ptr, numptrs * xfs_btree_ptr_len(cur));
1381+
memcpy(dst_ptr, src_ptr, numptrs * cur->bc_ops->ptr_len);
13911382
}
13921383

13931384
/*
@@ -1443,8 +1434,8 @@ xfs_btree_shift_ptrs(
14431434
ASSERT(numptrs >= 0);
14441435
ASSERT(dir == 1 || dir == -1);
14451436

1446-
dst_ptr = (char *)ptr + (dir * xfs_btree_ptr_len(cur));
1447-
memmove(dst_ptr, ptr, numptrs * xfs_btree_ptr_len(cur));
1437+
dst_ptr = (char *)ptr + (dir * cur->bc_ops->ptr_len);
1438+
memmove(dst_ptr, ptr, numptrs * cur->bc_ops->ptr_len);
14481439
}
14491440

14501441
/*
@@ -1570,7 +1561,7 @@ xfs_btree_log_block(
15701561
nbits = XFS_BB_NUM_BITS;
15711562
}
15721563
xfs_btree_offsets(fields,
1573-
(cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) ?
1564+
(cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) ?
15741565
loffsets : soffsets,
15751566
nbits, &first, &last);
15761567
xfs_trans_buf_set_type(cur->bc_tp, bp, XFS_BLFT_BTREE_BUF);
@@ -1793,7 +1784,7 @@ xfs_btree_check_block_owner(
17931784
return NULL;
17941785

17951786
owner = xfs_btree_owner(cur);
1796-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
1787+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
17971788
if (be64_to_cpu(block->bb_u.l.bb_owner) != owner)
17981789
return __this_address;
17991790
} else {
@@ -3052,7 +3043,7 @@ xfs_btree_new_iroot(
30523043
memcpy(cblock, block, xfs_btree_block_len(cur));
30533044
if (xfs_has_crc(cur->bc_mp)) {
30543045
__be64 bno = cpu_to_be64(xfs_buf_daddr(cbp));
3055-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
3046+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
30563047
cblock->bb_u.l.bb_blkno = bno;
30573048
else
30583049
cblock->bb_u.s.bb_blkno = bno;
@@ -4411,7 +4402,7 @@ xfs_btree_visit_block(
44114402
* return the same block without checking if the right sibling points
44124403
* back to us and creates a cyclic reference in the btree.
44134404
*/
4414-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
4405+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
44154406
if (be64_to_cpu(rptr.l) == XFS_DADDR_TO_FSB(cur->bc_mp,
44164407
xfs_buf_daddr(bp))) {
44174408
xfs_btree_mark_sick(cur);
@@ -4519,7 +4510,7 @@ xfs_btree_block_change_owner(
45194510

45204511
/* modify the owner */
45214512
block = xfs_btree_get_block(cur, level, &bp);
4522-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
4513+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
45234514
if (block->bb_u.l.bb_owner == cpu_to_be64(bbcoi->new_owner))
45244515
return 0;
45254516
block->bb_u.l.bb_owner = cpu_to_be64(bbcoi->new_owner);
@@ -5068,7 +5059,7 @@ xfs_btree_diff_two_ptrs(
50685059
const union xfs_btree_ptr *a,
50695060
const union xfs_btree_ptr *b)
50705061
{
5071-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
5062+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
50725063
return (int64_t)be64_to_cpu(a->l) - be64_to_cpu(b->l);
50735064
return (int64_t)be32_to_cpu(a->s) - be32_to_cpu(b->s);
50745065
}
@@ -5216,7 +5207,7 @@ xfs_btree_has_more_records(
52165207
return true;
52175208

52185209
/* There are more record blocks. */
5219-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
5210+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
52205211
return block->bb_u.l.bb_rightsib != cpu_to_be64(NULLFSBLOCK);
52215212
else
52225213
return block->bb_u.s.bb_rightsib != cpu_to_be32(NULLAGBLOCK);

fs/xfs/libxfs/xfs_btree.h

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,17 @@ static inline enum xbtree_key_contig xbtree_key_contig(uint64_t x, uint64_t y)
114114
return XBTREE_KEY_OVERLAP;
115115
}
116116

117+
#define XFS_BTREE_LONG_PTR_LEN (sizeof(__be64))
118+
#define XFS_BTREE_SHORT_PTR_LEN (sizeof(__be32))
119+
117120
struct xfs_btree_ops {
118121
/* XFS_BTGEO_* flags that determine the geometry of the btree */
119122
unsigned int geom_flags;
120123

121-
/* size of the key and record structures */
122-
size_t key_len;
123-
size_t rec_len;
124+
/* size of the key, pointer, and record structures */
125+
size_t key_len;
126+
size_t ptr_len;
127+
size_t rec_len;
124128

125129
/* LRU refcount to set on each btree buffer created */
126130
unsigned int lru_refs;
@@ -212,10 +216,9 @@ struct xfs_btree_ops {
212216
};
213217

214218
/* btree geometry flags */
215-
#define XFS_BTGEO_LONG_PTRS (1U << 0) /* pointers are 64bits long */
216-
#define XFS_BTGEO_ROOT_IN_INODE (1U << 1) /* root may be variable size */
217-
#define XFS_BTGEO_LASTREC_UPDATE (1U << 2) /* track last rec externally */
218-
#define XFS_BTGEO_OVERLAPPING (1U << 3) /* overlapping intervals */
219+
#define XFS_BTGEO_ROOT_IN_INODE (1U << 0) /* root may be variable size */
220+
#define XFS_BTGEO_LASTREC_UPDATE (1U << 1) /* track last rec externally */
221+
#define XFS_BTGEO_OVERLAPPING (1U << 2) /* overlapping intervals */
219222

220223
/*
221224
* Reasons for the update_lastrec method to be called.
@@ -289,8 +292,8 @@ struct xfs_btree_cur
289292
/*
290293
* Short btree pointers need an agno to be able to turn the pointers
291294
* into physical addresses for IO, so the btree cursor switches between
292-
* bc_ino and bc_ag based on whether XFS_BTGEO_LONG_PTRS is set for the
293-
* cursor.
295+
* bc_ino and bc_ag based on whether XFS_BTGEO_ROOT_IN_INODE is set for
296+
* the cursor.
294297
*/
295298
union {
296299
struct xfs_btree_cur_ag bc_ag;
@@ -689,7 +692,7 @@ xfs_btree_islastblock(
689692

690693
block = xfs_btree_get_block(cur, level, &bp);
691694

692-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
695+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
693696
return block->bb_u.l.bb_rightsib == cpu_to_be64(NULLFSBLOCK);
694697
return block->bb_u.s.bb_rightsib == cpu_to_be32(NULLAGBLOCK);
695698
}
@@ -725,6 +728,9 @@ xfs_btree_alloc_cursor(
725728
{
726729
struct xfs_btree_cur *cur;
727730

731+
ASSERT(ops->ptr_len == XFS_BTREE_LONG_PTR_LEN ||
732+
ops->ptr_len == XFS_BTREE_SHORT_PTR_LEN);
733+
728734
/* BMBT allocations can come through from non-transactional context. */
729735
cur = kmem_cache_zalloc(cache,
730736
GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);

fs/xfs/libxfs/xfs_ialloc_btree.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ xfs_inobt_keys_contiguous(
401401
const struct xfs_btree_ops xfs_inobt_ops = {
402402
.rec_len = sizeof(xfs_inobt_rec_t),
403403
.key_len = sizeof(xfs_inobt_key_t),
404+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
404405

405406
.lru_refs = XFS_INO_BTREE_REF,
406407
.statoff = XFS_STATS_CALC_INDEX(xs_ibt_2),
@@ -426,6 +427,7 @@ const struct xfs_btree_ops xfs_inobt_ops = {
426427
const struct xfs_btree_ops xfs_finobt_ops = {
427428
.rec_len = sizeof(xfs_inobt_rec_t),
428429
.key_len = sizeof(xfs_inobt_key_t),
430+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
429431

430432
.lru_refs = XFS_INO_BTREE_REF,
431433
.statoff = XFS_STATS_CALC_INDEX(xs_fibt_2),

fs/xfs/libxfs/xfs_refcount_btree.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ xfs_refcountbt_keys_contiguous(
320320
const struct xfs_btree_ops xfs_refcountbt_ops = {
321321
.rec_len = sizeof(struct xfs_refcount_rec),
322322
.key_len = sizeof(struct xfs_refcount_key),
323+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
323324

324325
.lru_refs = XFS_REFC_BTREE_REF,
325326
.statoff = XFS_STATS_CALC_INDEX(xs_refcbt_2),

fs/xfs/libxfs/xfs_rmap_btree.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ const struct xfs_btree_ops xfs_rmapbt_ops = {
477477

478478
.rec_len = sizeof(struct xfs_rmap_rec),
479479
.key_len = 2 * sizeof(struct xfs_rmap_key),
480+
.ptr_len = XFS_BTREE_SHORT_PTR_LEN,
480481

481482
.lru_refs = XFS_RMAP_BTREE_REF,
482483
.statoff = XFS_STATS_CALC_INDEX(xs_rmap_2),

fs/xfs/scrub/btree.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ xchk_btree_ptr_ok(
244244
return true;
245245

246246
/* Otherwise, check the pointers. */
247-
if (bs->cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
247+
if (bs->cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
248248
res = xfs_btree_check_lptr(bs->cur, be64_to_cpu(ptr->l), level);
249249
else
250250
res = xfs_btree_check_sptr(bs->cur, be32_to_cpu(ptr->s), level);
@@ -602,7 +602,7 @@ xchk_btree_get_block(
602602
return error;
603603

604604
xfs_btree_get_block(bs->cur, level, pbp);
605-
if (bs->cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
605+
if (bs->cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
606606
failed_at = __xfs_btree_check_lblock(bs->cur, *pblock,
607607
level, *pbp);
608608
else

fs/xfs/scrub/newbt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ xrep_newbt_claim_block(
535535
trace_xrep_newbt_claim_block(mp, resv->pag->pag_agno, agbno, 1,
536536
xnr->oinfo.oi_owner);
537537

538-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
538+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
539539
ptr->l = cpu_to_be64(XFS_AGB_TO_FSB(mp, resv->pag->pag_agno,
540540
agbno));
541541
else

fs/xfs/xfs_trace.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2520,7 +2520,7 @@ TRACE_EVENT(xfs_btree_alloc_block,
25202520
__entry->btnum = cur->bc_btnum;
25212521
__entry->error = error;
25222522
if (!error && stat) {
2523-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
2523+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
25242524
xfs_fsblock_t fsb = be64_to_cpu(ptr->l);
25252525

25262526
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp,
@@ -4262,7 +4262,7 @@ TRACE_EVENT(xfs_btree_bload_block,
42624262
__entry->level = level;
42634263
__entry->block_idx = block_idx;
42644264
__entry->nr_blocks = nr_blocks;
4265-
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS) {
4265+
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
42664266
xfs_fsblock_t fsb = be64_to_cpu(ptr->l);
42674267

42684268
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsb);

0 commit comments

Comments
 (0)