summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ctree.h2
-rw-r--r--print-tree.c11
2 files changed, 12 insertions, 1 deletions
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));