diff --git a/ctree.h b/ctree.h index 569504e3..8fed41e3 100644 --- a/ctree.h +++ b/ctree.h @@ -191,7 +191,7 @@ struct btrfs_file_extent_item { __le64 disk_blocknr; __le64 disk_num_blocks; /* - * the logical offset in file bytes (no csums) + * the logical offset in file blocks (no csums) * this extent record is for. This allows a file extent to point * into the middle of an existing extent on disk, sharing it * between two snapshots (useful if some bytes in the middle of the diff --git a/print-tree.c b/print-tree.c index 5259b6e9..5fa8d8a5 100644 --- a/print-tree.c +++ b/print-tree.c @@ -15,6 +15,7 @@ void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l) struct btrfs_dir_item *di; struct btrfs_inode_map_item *mi; struct btrfs_inode_item *ii; + struct btrfs_file_extent_item *fi; u32 type; printf("leaf %Lu ptrs %d free space %d parent %Lu generation %Lu\n", @@ -67,6 +68,16 @@ void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l) btrfs_disk_key_flags(&mi->key), btrfs_disk_key_offset(&mi->key)); break; + case BTRFS_EXTENT_DATA_KEY: + fi = btrfs_item_ptr(l, i, + struct btrfs_file_extent_item); + printf("\t\textent data disk block %Lu nr %Lu\n", + btrfs_file_extent_disk_blocknr(fi), + btrfs_file_extent_disk_num_blocks(fi)); + printf("\t\textent data offset %Lu nr %Lu\n", + btrfs_file_extent_offset(fi), + btrfs_file_extent_num_blocks(fi)); + break; case BTRFS_STRING_ITEM_KEY: printf("\t\titem data %.*s\n", btrfs_item_size(item), btrfs_leaf_data(l) + btrfs_item_offset(item));