diff --git a/fs/btrfs/TODO b/fs/btrfs/TODO
index db986c4..ea4c38c 100644
--- a/fs/btrfs/TODO
+++ b/fs/btrfs/TODO
@@ -3,7 +3,6 @@
 * Add block mapping tree (simple dm layer)
 * Make allocator smarter
 * add a block group to struct inode
-* Make directory hashing work on 32 bit
 * Make sure nobh stuff is working properly for cows
 * Do actual block accounting
 * Check compat and incompat flags on the inode
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 864ee42..39b5515 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -200,6 +200,10 @@
 static int check_block(struct btrfs_root *root, struct btrfs_path *path,
 			int level)
 {
+	struct btrfs_node *node = btrfs_buffer_node(path->nodes[level]);
+	if (memcmp(node->header.fsid, root->fs_info->disk_super->fsid,
+		   sizeof(node->header.fsid)))
+		BUG();
 	if (level == 0)
 		return check_leaf(root, path, level);
 	return check_node(root, path, level);
@@ -687,6 +691,8 @@
 	btrfs_set_header_parentid(&c->header,
 	      btrfs_header_parentid(btrfs_buffer_header(root->node)));
 	lower = btrfs_buffer_node(path->nodes[level-1]);
+	memcpy(c->header.fsid, root->fs_info->disk_super->fsid,
+	       sizeof(c->header.fsid));
 	if (btrfs_is_leaf(lower))
 		lower_key = &((struct btrfs_leaf *)lower)->items[0].key;
 	else
@@ -780,6 +786,8 @@
 	btrfs_set_header_generation(&split->header, trans->transid);
 	btrfs_set_header_parentid(&split->header,
 	      btrfs_header_parentid(btrfs_buffer_header(root->node)));
+	memcpy(split->header.fsid, root->fs_info->disk_super->fsid,
+	       sizeof(split->header.fsid));
 	mid = (c_nritems + 1) / 2;
 	btrfs_memcpy(root, split, split->ptrs, c->ptrs + mid,
 		     (c_nritems - mid) * sizeof(struct btrfs_key_ptr));
@@ -1139,6 +1147,8 @@
 	btrfs_set_header_level(&right->header, 0);
 	btrfs_set_header_parentid(&right->header,
 	      btrfs_header_parentid(btrfs_buffer_header(root->node)));
+	memcpy(right->header.fsid, root->fs_info->disk_super->fsid,
+	       sizeof(right->header.fsid));
 	if (mid <= slot) {
 		if (nritems == 1 ||
 		    leaf_space_used(l, mid, nritems - mid) + space_needed >
@@ -1229,6 +1239,8 @@
 	btrfs_set_header_level(&right->header, 0);
 	btrfs_set_header_parentid(&right->header,
 	      btrfs_header_parentid(btrfs_buffer_header(root->node)));
+	memcpy(right->header.fsid, root->fs_info->disk_super->fsid,
+	       sizeof(right->header.fsid));
 	btrfs_cpu_key_to_disk(&disk_key, ins_key);
 	btrfs_set_header_nritems(&right->header, 0);
 	wret = insert_ptr(trans, root, path,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d4ee780..32224ff 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -483,10 +483,8 @@
 		if (btrfs_disk_key_objectid(&item->key) != key.objectid)
 			break;
 		if (btrfs_disk_key_offset(&item->key) >
-		    root->fs_info->highest_inode) {
-printk("stopping at highest inode %Lu\n", root->fs_info->highest_inode);
+		    root->fs_info->highest_inode)
 			break;
-		}
 		if (btrfs_disk_key_type(&item->key) != BTRFS_DIR_INDEX_KEY)
 			continue;
 		if (btrfs_disk_key_offset(&item->key) < filp->f_pos)
