print-tree.c (a8a2ee0c600a213d13170c2f4d7bd0b304bbec19) | print-tree.c (9f5fae2fe6dc35b46bf56183f11398451851cb3f) |
---|---|
1#include <stdio.h> 2#include <stdlib.h> 3#include "kerncompat.h" 4#include "radix-tree.h" 5#include "ctree.h" 6#include "disk-io.h" 7 8void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l) 9{ 10 int i; 11 u32 nr = btrfs_header_nritems(&l->header); 12 struct btrfs_item *item; 13 struct btrfs_extent_item *ei; 14 struct btrfs_root_item *ri; 15 struct btrfs_dir_item *di; | 1#include <stdio.h> 2#include <stdlib.h> 3#include "kerncompat.h" 4#include "radix-tree.h" 5#include "ctree.h" 6#include "disk-io.h" 7 8void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l) 9{ 10 int i; 11 u32 nr = btrfs_header_nritems(&l->header); 12 struct btrfs_item *item; 13 struct btrfs_extent_item *ei; 14 struct btrfs_root_item *ri; 15 struct btrfs_dir_item *di; |
16 struct btrfs_inode_map_item *mi; |
|
16 u32 type; | 17 u32 type; |
17 u32 namelen; | |
18 19 printf("leaf %Lu total ptrs %d free space %d\n", 20 btrfs_header_blocknr(&l->header), nr, 21 btrfs_leaf_free_space(root, l)); 22 fflush(stdout); 23 for (i = 0 ; i < nr ; i++) { 24 item = l->items + i; 25 type = btrfs_disk_key_type(&item->key); 26 printf("\titem %d key (%Lu %u %Lu) itemoff %d itemsize %d\n", 27 i, 28 btrfs_disk_key_objectid(&item->key), 29 btrfs_disk_key_flags(&item->key), 30 btrfs_disk_key_offset(&item->key), 31 btrfs_item_offset(item), 32 btrfs_item_size(item)); 33 switch (type) { 34 case BTRFS_INODE_ITEM_KEY: 35 break; 36 case BTRFS_DIR_ITEM_KEY: | 18 19 printf("leaf %Lu total ptrs %d free space %d\n", 20 btrfs_header_blocknr(&l->header), nr, 21 btrfs_leaf_free_space(root, l)); 22 fflush(stdout); 23 for (i = 0 ; i < nr ; i++) { 24 item = l->items + i; 25 type = btrfs_disk_key_type(&item->key); 26 printf("\titem %d key (%Lu %u %Lu) itemoff %d itemsize %d\n", 27 i, 28 btrfs_disk_key_objectid(&item->key), 29 btrfs_disk_key_flags(&item->key), 30 btrfs_disk_key_offset(&item->key), 31 btrfs_item_offset(item), 32 btrfs_item_size(item)); 33 switch (type) { 34 case BTRFS_INODE_ITEM_KEY: 35 break; 36 case BTRFS_DIR_ITEM_KEY: |
37 namelen = btrfs_item_size(l->items + i) - sizeof(*di); | |
38 di = btrfs_item_ptr(l, i, struct btrfs_dir_item); 39 printf("\t\tdir oid %Lu flags %u type %u\n", 40 btrfs_dir_objectid(di), 41 btrfs_dir_flags(di), 42 btrfs_dir_type(di)); 43 printf("\t\tname %.*s\n", | 37 di = btrfs_item_ptr(l, i, struct btrfs_dir_item); 38 printf("\t\tdir oid %Lu flags %u type %u\n", 39 btrfs_dir_objectid(di), 40 btrfs_dir_flags(di), 41 btrfs_dir_type(di)); 42 printf("\t\tname %.*s\n", |
44 namelen, (char *)(di + 1)); 45 | 43 btrfs_dir_name_len(di),(char *)(di + 1)); |
46 break; 47 case BTRFS_ROOT_ITEM_KEY: 48 ri = btrfs_item_ptr(l, i, struct btrfs_root_item); 49 printf("\t\troot data blocknr %Lu refs %u\n", 50 btrfs_root_blocknr(ri), btrfs_root_refs(ri)); 51 break; 52 case BTRFS_EXTENT_ITEM_KEY: 53 ei = btrfs_item_ptr(l, i, struct btrfs_extent_item); 54 printf("\t\textent data refs %u owner %Lu\n", 55 btrfs_extent_refs(ei), btrfs_extent_owner(ei)); 56 break; | 44 break; 45 case BTRFS_ROOT_ITEM_KEY: 46 ri = btrfs_item_ptr(l, i, struct btrfs_root_item); 47 printf("\t\troot data blocknr %Lu refs %u\n", 48 btrfs_root_blocknr(ri), btrfs_root_refs(ri)); 49 break; 50 case BTRFS_EXTENT_ITEM_KEY: 51 ei = btrfs_item_ptr(l, i, struct btrfs_extent_item); 52 printf("\t\textent data refs %u owner %Lu\n", 53 btrfs_extent_refs(ei), btrfs_extent_owner(ei)); 54 break; |
55 case BTRFS_INODE_MAP_ITEM_KEY: 56 mi = btrfs_item_ptr(l, i, struct btrfs_inode_map_item); 57 printf("\t\tinode map key %Lu %u %Lu\n", 58 btrfs_disk_key_objectid(&mi->key), 59 btrfs_disk_key_flags(&mi->key), 60 btrfs_disk_key_offset(&mi->key)); 61 break; |
|
57 case BTRFS_STRING_ITEM_KEY: 58 printf("\t\titem data %.*s\n", btrfs_item_size(item), 59 btrfs_leaf_data(l) + btrfs_item_offset(item)); 60 break; 61 }; 62 fflush(stdout); 63 } 64} --- 42 unchanged lines hidden --- | 62 case BTRFS_STRING_ITEM_KEY: 63 printf("\t\titem data %.*s\n", btrfs_item_size(item), 64 btrfs_leaf_data(l) + btrfs_item_offset(item)); 65 break; 66 }; 67 fflush(stdout); 68 } 69} --- 42 unchanged lines hidden --- |