summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorDarrick J. Wong2017-06-16 20:00:04 +0200
committerDarrick J. Wong2017-06-19 23:11:33 +0200
commit5a4c73342ad493c61f19a1406f47dcd35e18030f (patch)
treee07e69cd715c1e5dd3f38b92359c7332d3aa60bd /fs
parentxfs: remove bli from AIL before release on transaction abort (diff)
downloadkernel-qcow2-linux-5a4c73342ad493c61f19a1406f47dcd35e18030f.tar.gz
kernel-qcow2-linux-5a4c73342ad493c61f19a1406f47dcd35e18030f.tar.xz
kernel-qcow2-linux-5a4c73342ad493c61f19a1406f47dcd35e18030f.zip
xfs: optimize _btree_query_all
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/xfs/libxfs/xfs_btree.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
index 3a673ba201aa..d50517942273 100644
--- a/fs/xfs/libxfs/xfs_btree.c
+++ b/fs/xfs/libxfs/xfs_btree.c
@@ -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);
}
/*