| From: Qu Wenruo <wqu@suse.com> |
| Date: Tue, 27 Mar 2018 20:44:18 +0800 |
| Subject: btrfs: tests/qgroup: Fix wrong tree backref level |
| |
| commit 3c0efdf03b2d127f0e40e30db4e7aa0429b1b79a upstream. |
| |
| The extent tree of the test fs is like the following: |
| |
| BTRFS info (device (null)): leaf 16327509003777336587 total ptrs 1 free space 3919 |
| item 0 key (4096 168 4096) itemoff 3944 itemsize 51 |
| extent refs 1 gen 1 flags 2 |
| tree block key (68719476736 0 0) level 1 |
| ^^^^^^^ |
| ref#0: tree block backref root 5 |
| |
| And it's using an empty tree for fs tree, so there is no way that its |
| level can be 1. |
| |
| For REAL (created by mkfs) fs tree backref with no skinny metadata, the |
| result should look like: |
| |
| item 3 key (30408704 EXTENT_ITEM 4096) itemoff 3845 itemsize 51 |
| refs 1 gen 4 flags TREE_BLOCK |
| tree block key (256 INODE_ITEM 0) level 0 |
| ^^^^^^^ |
| tree block backref root 5 |
| |
| Fix the level to 0, so it won't break later tree level checker. |
| |
| Fixes: faa2dbf004e8 ("Btrfs: add sanity tests for new qgroup accounting code") |
| Signed-off-by: Qu Wenruo <wqu@suse.com> |
| Signed-off-by: David Sterba <dsterba@suse.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| fs/btrfs/tests/qgroup-tests.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/btrfs/tests/qgroup-tests.c |
| +++ b/fs/btrfs/tests/qgroup-tests.c |
| @@ -69,7 +69,7 @@ static int insert_normal_tree_ref(struct |
| btrfs_set_extent_generation(leaf, item, 1); |
| btrfs_set_extent_flags(leaf, item, BTRFS_EXTENT_FLAG_TREE_BLOCK); |
| block_info = (struct btrfs_tree_block_info *)(item + 1); |
| - btrfs_set_tree_block_level(leaf, block_info, 1); |
| + btrfs_set_tree_block_level(leaf, block_info, 0); |
| iref = (struct btrfs_extent_inline_ref *)(block_info + 1); |
| if (parent > 0) { |
| btrfs_set_extent_inline_ref_type(leaf, iref, |