diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c
index e32a959..7df16b1 100644
--- a/fs/btrfs/print-tree.c
+++ b/fs/btrfs/print-tree.c
@@ -8,11 +8,11 @@
 void print_leaf(struct leaf *l)
 {
 	int i;
-	int nr = l->header.nritems;
+	u32 nr = btrfs_header_nritems(&l->header);
 	struct item *item;
 	struct extent_item *ei;
-	printf("leaf %Lu total ptrs %d free space %d\n", l->header.blocknr, nr,
-	       leaf_free_space(l));
+	printf("leaf %Lu total ptrs %d free space %d\n",
+		btrfs_header_blocknr(&l->header), nr, leaf_free_space(l));
 	fflush(stdout);
 	for (i = 0 ; i < nr ; i++) {
 		item = l->items + i;
@@ -32,22 +32,20 @@
 void print_tree(struct ctree_root *root, struct tree_buffer *t)
 {
 	int i;
-	int nr;
+	u32 nr;
 	struct node *c;
 
 	if (!t)
 		return;
 	c = &t->node;
-	nr = c->header.nritems;
-	if (c->header.blocknr != t->blocknr)
-		BUG();
-	if (is_leaf(c->header.flags)) {
+	nr = btrfs_header_nritems(&c->header);
+	if (btrfs_is_leaf(c)) {
 		print_leaf((struct leaf *)c);
 		return;
 	}
 	printf("node %Lu level %d total ptrs %d free spc %u\n", t->blocknr,
-	        node_level(c->header.flags), c->header.nritems,
-		(u32)NODEPTRS_PER_BLOCK - c->header.nritems);
+	        btrfs_header_level(&c->header), nr,
+		(u32)NODEPTRS_PER_BLOCK - nr);
 	fflush(stdout);
 	for (i = 0; i < nr; i++) {
 		printf("\tkey %d (%Lu %u %Lu) block %Lu\n",
@@ -60,11 +58,11 @@
 		struct tree_buffer *next_buf = read_tree_block(root,
 							    c->blockptrs[i]);
 		struct node *next = &next_buf->node;
-		if (is_leaf(next->header.flags) &&
-		    node_level(c->header.flags) != 1)
+		if (btrfs_is_leaf(next) &&
+		    btrfs_header_level(&c->header) != 1)
 			BUG();
-		if (node_level(next->header.flags) !=
-			node_level(c->header.flags) - 1)
+		if (btrfs_header_level(&next->header) !=
+			btrfs_header_level(&c->header) - 1)
 			BUG();
 		print_tree(root, next_buf);
 		tree_block_release(root, next_buf);
