linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] btrfs: tests/qgroup: Fix wrong tree backref level
@ 2018-03-27 12:44 Qu Wenruo
  2018-03-27 12:44 ` [PATCH v2 2/2] btrfs: Validate child tree block's level and first key Qu Wenruo
  2018-03-28 15:32 ` [PATCH 1/2] btrfs: tests/qgroup: Fix wrong tree backref level David Sterba
  0 siblings, 2 replies; 9+ messages in thread
From: Qu Wenruo @ 2018-03-27 12:44 UTC (permalink / raw)
  To: linux-btrfs

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>
---
 fs/btrfs/tests/qgroup-tests.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/tests/qgroup-tests.c b/fs/btrfs/tests/qgroup-tests.c
index 90204b166643..160eb2fba726 100644
--- a/fs/btrfs/tests/qgroup-tests.c
+++ b/fs/btrfs/tests/qgroup-tests.c
@@ -63,7 +63,7 @@ static int insert_normal_tree_ref(struct btrfs_root *root, u64 bytenr,
 	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,
-- 
2.16.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-04-06 23:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-27 12:44 [PATCH 1/2] btrfs: tests/qgroup: Fix wrong tree backref level Qu Wenruo
2018-03-27 12:44 ` [PATCH v2 2/2] btrfs: Validate child tree block's level and first key Qu Wenruo
2018-03-28 15:49   ` David Sterba
2018-04-02 10:47     ` Qu Wenruo
2018-04-03  5:50       ` Qu Wenruo
2018-04-06 17:07       ` David Sterba
2018-04-06 23:27         ` Qu Wenruo
2018-03-28 15:32 ` [PATCH 1/2] btrfs: tests/qgroup: Fix wrong tree backref level David Sterba
2018-03-29  0:06   ` Qu Wenruo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).