xfs: add function pointers for get/update keys to the btree

Add some function pointers to bc_ops to get the btree keys for
leaf and node blocks, and to update parent keys of a block.
Convert the _btree_updkey calls to use our new pointer, and
modify the tree shape changing code to call the appropriate
get_*_keys pointer instead of _btree_copy_keys because the
overlapping btree has to calculate high key values.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Darrick J. Wong 2016-08-03 11:03:38 +10:00 committed by Dave Chinner
parent e5821e57af
commit 70b2265935
5 changed files with 137 additions and 66 deletions

View file

@ -314,6 +314,10 @@ static const struct xfs_btree_ops xfs_inobt_ops = {
.keys_inorder = xfs_inobt_keys_inorder,
.recs_inorder = xfs_inobt_recs_inorder,
#endif
.get_leaf_keys = xfs_btree_get_leaf_keys,
.get_node_keys = xfs_btree_get_node_keys,
.update_keys = xfs_btree_update_keys,
};
static const struct xfs_btree_ops xfs_finobt_ops = {
@ -335,6 +339,10 @@ static const struct xfs_btree_ops xfs_finobt_ops = {
.keys_inorder = xfs_inobt_keys_inorder,
.recs_inorder = xfs_inobt_recs_inorder,
#endif
.get_leaf_keys = xfs_btree_get_leaf_keys,
.get_node_keys = xfs_btree_get_node_keys,
.update_keys = xfs_btree_update_keys,
};
/*