xfs: optimize _btree_query_all
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 16 Jun 2017 18:00:04 +0000 (11:00 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Mon, 19 Jun 2017 21:11:33 +0000 (14:11 -0700)
Don't bother wandering our way through the leaf nodes when the caller
issues a query_all; just zoom down the left side of the tree and walk
rightwards along level zero.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/libxfs/xfs_btree.c

index 3a673ba201aae9f39c8190bfa2b8904120284ce5..d50517942273e0b49b7ef6b50225a555cf2e452e 100644 (file)
@@ -4849,12 +4849,14 @@ xfs_btree_query_all(
        xfs_btree_query_range_fn        fn,
        void                            *priv)
 {
-       union xfs_btree_irec            low_rec;
-       union xfs_btree_irec            high_rec;
+       union xfs_btree_key             low_key;
+       union xfs_btree_key             high_key;
+
+       memset(&cur->bc_rec, 0, sizeof(cur->bc_rec));
+       memset(&low_key, 0, sizeof(low_key));
+       memset(&high_key, 0xFF, sizeof(high_key));
 
-       memset(&low_rec, 0, sizeof(low_rec));
-       memset(&high_rec, 0xFF, sizeof(high_rec));
-       return xfs_btree_query_range(cur, &low_rec, &high_rec, fn, priv);
+       return xfs_btree_simple_query_range(cur, &low_key, &high_key, fn, priv);
 }
 
 /*