aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/print-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/print-tree.c')
-rw-r--r--fs/btrfs/print-tree.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c
index 124276bba8cf..21a831d3d087 100644
--- a/fs/btrfs/print-tree.c
+++ b/fs/btrfs/print-tree.c
@@ -189,9 +189,10 @@ void btrfs_print_leaf(struct extent_buffer *l)
189 fs_info = l->fs_info; 189 fs_info = l->fs_info;
190 nr = btrfs_header_nritems(l); 190 nr = btrfs_header_nritems(l);
191 191
192 btrfs_info(fs_info, "leaf %llu total ptrs %d free space %d", 192 btrfs_info(fs_info,
193 btrfs_header_bytenr(l), nr, 193 "leaf %llu gen %llu total ptrs %d free space %d owner %llu",
194 btrfs_leaf_free_space(fs_info, l)); 194 btrfs_header_bytenr(l), btrfs_header_generation(l), nr,
195 btrfs_leaf_free_space(fs_info, l), btrfs_header_owner(l));
195 for (i = 0 ; i < nr ; i++) { 196 for (i = 0 ; i < nr ; i++) {
196 item = btrfs_item_nr(i); 197 item = btrfs_item_nr(i);
197 btrfs_item_key_to_cpu(l, &key, i); 198 btrfs_item_key_to_cpu(l, &key, i);
@@ -325,7 +326,7 @@ void btrfs_print_leaf(struct extent_buffer *l)
325 } 326 }
326} 327}
327 328
328void btrfs_print_tree(struct extent_buffer *c) 329void btrfs_print_tree(struct extent_buffer *c, bool follow)
329{ 330{
330 struct btrfs_fs_info *fs_info; 331 struct btrfs_fs_info *fs_info;
331 int i; u32 nr; 332 int i; u32 nr;
@@ -342,15 +343,19 @@ void btrfs_print_tree(struct extent_buffer *c)
342 return; 343 return;
343 } 344 }
344 btrfs_info(fs_info, 345 btrfs_info(fs_info,
345 "node %llu level %d total ptrs %d free spc %u", 346 "node %llu level %d gen %llu total ptrs %d free spc %u owner %llu",
346 btrfs_header_bytenr(c), level, nr, 347 btrfs_header_bytenr(c), level, btrfs_header_generation(c),
347 (u32)BTRFS_NODEPTRS_PER_BLOCK(fs_info) - nr); 348 nr, (u32)BTRFS_NODEPTRS_PER_BLOCK(fs_info) - nr,
349 btrfs_header_owner(c));
348 for (i = 0; i < nr; i++) { 350 for (i = 0; i < nr; i++) {
349 btrfs_node_key_to_cpu(c, &key, i); 351 btrfs_node_key_to_cpu(c, &key, i);
350 pr_info("\tkey %d (%llu %u %llu) block %llu\n", 352 pr_info("\tkey %d (%llu %u %llu) block %llu gen %llu\n",
351 i, key.objectid, key.type, key.offset, 353 i, key.objectid, key.type, key.offset,
352 btrfs_node_blockptr(c, i)); 354 btrfs_node_blockptr(c, i),
355 btrfs_node_ptr_generation(c, i));
353 } 356 }
357 if (!follow)
358 return;
354 for (i = 0; i < nr; i++) { 359 for (i = 0; i < nr; i++) {
355 struct btrfs_key first_key; 360 struct btrfs_key first_key;
356 struct extent_buffer *next; 361 struct extent_buffer *next;
@@ -372,7 +377,7 @@ void btrfs_print_tree(struct extent_buffer *c)
372 if (btrfs_header_level(next) != 377 if (btrfs_header_level(next) !=
373 level - 1) 378 level - 1)
374 BUG(); 379 BUG();
375 btrfs_print_tree(next); 380 btrfs_print_tree(next, follow);
376 free_extent_buffer(next); 381 free_extent_buffer(next);
377 } 382 }
378} 383}