Btrfs: variable block size support

Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c
index e769f36..7a189ea 100644
--- a/fs/btrfs/print-tree.c
+++ b/fs/btrfs/print-tree.c
@@ -5,7 +5,7 @@
 #include "ctree.h"
 #include "disk-io.h"
 
-void btrfs_print_leaf(struct btrfs_leaf *l)
+void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l)
 {
 	int i;
 	u32 nr = btrfs_header_nritems(&l->header);
@@ -13,7 +13,8 @@
 	struct btrfs_extent_item *ei;
 	struct btrfs_root_item *ri;
 	printf("leaf %Lu total ptrs %d free space %d\n",
-		btrfs_header_blocknr(&l->header), nr, btrfs_leaf_free_space(l));
+		btrfs_header_blocknr(&l->header), nr,
+		btrfs_leaf_free_space(root, l));
 	fflush(stdout);
 	for (i = 0 ; i < nr ; i++) {
 		item = l->items + i;
@@ -25,7 +26,7 @@
 			btrfs_item_offset(item),
 			btrfs_item_size(item));
 		printf("\t\titem data %.*s\n", btrfs_item_size(item),
-			l->data + btrfs_item_offset(item));
+			btrfs_leaf_data(l) + btrfs_item_offset(item));
 		ei = btrfs_item_ptr(l, i, struct btrfs_extent_item);
 		printf("\t\textent data refs %u owner %Lu\n",
 			btrfs_extent_refs(ei), btrfs_extent_owner(ei));
@@ -46,18 +47,18 @@
 	c = &t->node;
 	nr = btrfs_header_nritems(&c->header);
 	if (btrfs_is_leaf(c)) {
-		btrfs_print_leaf((struct btrfs_leaf *)c);
+		btrfs_print_leaf(root, (struct btrfs_leaf *)c);
 		return;
 	}
 	printf("node %Lu level %d total ptrs %d free spc %u\n", t->blocknr,
 	        btrfs_header_level(&c->header), nr,
-		(u32)NODEPTRS_PER_BLOCK - nr);
+		(u32)BTRFS_NODEPTRS_PER_BLOCK(root) - nr);
 	fflush(stdout);
 	for (i = 0; i < nr; i++) {
 		printf("\tkey %d (%Lu %u %Lu) block %Lu\n",
 		       i,
-		       c->keys[i].objectid, c->keys[i].flags, c->keys[i].offset,
-		       btrfs_node_blockptr(c, i));
+		       c->ptrs[i].key.objectid, c->ptrs[i].key.flags,
+		       c->ptrs[i].key.offset, btrfs_node_blockptr(c, i));
 		fflush(stdout);
 	}
 	for (i = 0; i < nr; i++) {