diff --git a/disk-io.c b/disk-io.c index a6e1000..17808fd 100644 --- a/disk-io.c +++ b/disk-io.c @@ -185,16 +185,29 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, int mirror_num = 0; int num_copies; + printk("-- entering read_tree_block...\n"); + + if (parent_transid == 85879) { + printk("called with parent_transid=85879," + " setting it to 85878\n"); + parent_transid = 85878; + } + eb = btrfs_find_create_tree_block(root, bytenr, blocksize); if (!eb) return NULL; if (btrfs_buffer_uptodate(eb, parent_transid)) return eb; + + printk("btrfs_buffer_uptodate @%llu / transid wanted %llu\n", + (unsigned long long) eb->start, + (unsigned long long) parent_transid); dev_nr = 0; length = blocksize; while (1) { + printk("-- search loop [transid=%llu] --\n", parent_transid); ret = btrfs_map_block(&root->fs_info->mapping_tree, READ, eb->start, &length, &multi, mirror_num); BUG_ON(ret); @@ -204,10 +217,14 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, eb->dev_bytenr = multi->stripes[0].physical; kfree(multi); ret = read_extent_from_disk(eb); + if (parent_transid == 85878) { + print_extent_buffer_info(eb); + } if (ret == 0 && check_tree_block(root, eb) == 0 && csum_tree_block(root, eb, 1) == 0 && verify_parent_transid(eb->tree, eb, parent_transid) == 0) { btrfs_set_buffer_uptodate(eb); + printk("`-> eb found and set uptodate!\n"); return eb; } num_copies = btrfs_num_copies(&root->fs_info->mapping_tree, @@ -221,6 +238,7 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, } } free_extent_buffer(eb); + printk("-- not found --\n"); return NULL; } @@ -1016,10 +1034,14 @@ int btrfs_buffer_uptodate(struct extent_buffer *buf, u64 parent_transid) int ret; ret = extent_buffer_uptodate(buf); - if (!ret) + if (!ret) { + printk("btrfs_buffer_uptodate: extent_buffer_uptodate FAIL\n"); return ret; + } ret = verify_parent_transid(buf->tree, buf, parent_transid); + if (ret) + printk("btrfs_buffer_uptodate: verify_parent_transid FAIL\n"); return !ret; } @@ -1027,3 +1049,13 @@ int btrfs_set_buffer_uptodate(struct extent_buffer *eb) { return set_extent_buffer_uptodate(eb); } + +void print_extent_buffer_info(struct extent_buffer *eb) { + printk("`-> extend buffer informations follow\n"); + printk(" |-> start: %llu\n", eb->start ); + printk(" |-> dev_bytenr: %llu\n", eb->dev_bytenr); + printk(" |-> len: %i\n", eb->len ); + printk(" |-> refs: %i\n", eb->refs ); + printk(" |-> flags: %i\n", eb->flags ); +} +