@@ -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 */
589589static 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 );
0 commit comments