mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
xfs: factor out a xfs_btree_owner helper
Split out a helper to calculate the owner for a given btree instead of duplicating the logic in two places. While we're at it, make the bc_ag/bc_ino switch logic depend on the correct geometry flag. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> [djwong: break this up into two patches for the owner check] Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
07b7f2e317
commit
2054cf0516
|
|
@ -1222,6 +1222,15 @@ xfs_btree_init_buf(
|
|||
bp->b_ops = ops->buf_ops;
|
||||
}
|
||||
|
||||
static inline __u64
|
||||
xfs_btree_owner(
|
||||
struct xfs_btree_cur *cur)
|
||||
{
|
||||
if (cur->bc_ops->geom_flags & XFS_BTGEO_ROOT_IN_INODE)
|
||||
return cur->bc_ino.ip->i_ino;
|
||||
return cur->bc_ag.pag->pag_agno;
|
||||
}
|
||||
|
||||
void
|
||||
xfs_btree_init_block_cur(
|
||||
struct xfs_btree_cur *cur,
|
||||
|
|
@ -1229,20 +1238,8 @@ xfs_btree_init_block_cur(
|
|||
int level,
|
||||
int numrecs)
|
||||
{
|
||||
__u64 owner;
|
||||
|
||||
/*
|
||||
* we can pull the owner from the cursor right now as the different
|
||||
* owners align directly with the pointer size of the btree. This may
|
||||
* change in future, but is safe for current users of the generic btree
|
||||
* code.
|
||||
*/
|
||||
if (cur->bc_ops->geom_flags & XFS_BTGEO_LONG_PTRS)
|
||||
owner = cur->bc_ino.ip->i_ino;
|
||||
else
|
||||
owner = cur->bc_ag.pag->pag_agno;
|
||||
|
||||
xfs_btree_init_buf(cur->bc_mp, bp, cur->bc_ops, level, numrecs, owner);
|
||||
xfs_btree_init_buf(cur->bc_mp, bp, cur->bc_ops, level, numrecs,
|
||||
xfs_btree_owner(cur));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user