diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_btree.c')
-rw-r--r-- | fs/xfs/libxfs/xfs_btree.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c index 498f5cde0bb1..b9bdc46ae6a2 100644 --- a/fs/xfs/libxfs/xfs_btree.c +++ b/fs/xfs/libxfs/xfs_btree.c @@ -4393,6 +4393,7 @@ int xfs_btree_visit_blocks( struct xfs_btree_cur *cur, xfs_btree_visit_blocks_fn fn, + unsigned int flags, void *data) { union xfs_btree_ptr lptr; @@ -4420,6 +4421,9 @@ xfs_btree_visit_blocks( xfs_btree_copy_ptrs(cur, &lptr, ptr, 1); } + if ((flags & XFS_BTREE_VISIT_RECORDS_ONLY) && level > 0) + continue; + /* for each buffer in the level */ do { error = xfs_btree_visit_block(cur, level, fn, data); @@ -4519,7 +4523,7 @@ xfs_btree_change_owner( bbcoi.new_owner = new_owner; bbcoi.buffer_list = buffer_list; - return xfs_btree_visit_blocks(cur, xfs_btree_block_change_owner, + return xfs_btree_visit_blocks(cur, xfs_btree_block_change_owner, 0, &bbcoi); } @@ -4971,7 +4975,7 @@ xfs_btree_count_blocks( xfs_extlen_t *blocks) { *blocks = 0; - return xfs_btree_visit_blocks(cur, xfs_btree_count_blocks_helper, + return xfs_btree_visit_blocks(cur, xfs_btree_count_blocks_helper, 0, blocks); } |