diff options
Diffstat (limited to 'fs/btrfs/check-integrity.c')
-rw-r--r-- | fs/btrfs/check-integrity.c | 293 |
1 files changed, 95 insertions, 198 deletions
diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c index 07f39a3dedb0..fa68c8ab9a15 100644 --- a/fs/btrfs/check-integrity.c +++ b/fs/btrfs/check-integrity.c | |||
@@ -701,15 +701,13 @@ static int btrfsic_process_superblock(struct btrfsic_state *state, | |||
701 | next_bytenr = btrfs_super_root(selected_super); | 701 | next_bytenr = btrfs_super_root(selected_super); |
702 | if (state->print_mask & | 702 | if (state->print_mask & |
703 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 703 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
704 | printk(KERN_INFO "root@%llu\n", | 704 | printk(KERN_INFO "root@%llu\n", next_bytenr); |
705 | (unsigned long long)next_bytenr); | ||
706 | break; | 705 | break; |
707 | case 1: | 706 | case 1: |
708 | next_bytenr = btrfs_super_chunk_root(selected_super); | 707 | next_bytenr = btrfs_super_chunk_root(selected_super); |
709 | if (state->print_mask & | 708 | if (state->print_mask & |
710 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 709 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
711 | printk(KERN_INFO "chunk@%llu\n", | 710 | printk(KERN_INFO "chunk@%llu\n", next_bytenr); |
712 | (unsigned long long)next_bytenr); | ||
713 | break; | 711 | break; |
714 | case 2: | 712 | case 2: |
715 | next_bytenr = btrfs_super_log_root(selected_super); | 713 | next_bytenr = btrfs_super_log_root(selected_super); |
@@ -717,8 +715,7 @@ static int btrfsic_process_superblock(struct btrfsic_state *state, | |||
717 | continue; | 715 | continue; |
718 | if (state->print_mask & | 716 | if (state->print_mask & |
719 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 717 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
720 | printk(KERN_INFO "log@%llu\n", | 718 | printk(KERN_INFO "log@%llu\n", next_bytenr); |
721 | (unsigned long long)next_bytenr); | ||
722 | break; | 719 | break; |
723 | } | 720 | } |
724 | 721 | ||
@@ -727,7 +724,7 @@ static int btrfsic_process_superblock(struct btrfsic_state *state, | |||
727 | next_bytenr, state->metablock_size); | 724 | next_bytenr, state->metablock_size); |
728 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) | 725 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) |
729 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", | 726 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", |
730 | (unsigned long long)next_bytenr, num_copies); | 727 | next_bytenr, num_copies); |
731 | 728 | ||
732 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { | 729 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { |
733 | struct btrfsic_block *next_block; | 730 | struct btrfsic_block *next_block; |
@@ -742,8 +739,7 @@ static int btrfsic_process_superblock(struct btrfsic_state *state, | |||
742 | printk(KERN_INFO "btrfsic:" | 739 | printk(KERN_INFO "btrfsic:" |
743 | " btrfsic_map_block(root @%llu," | 740 | " btrfsic_map_block(root @%llu," |
744 | " mirror %d) failed!\n", | 741 | " mirror %d) failed!\n", |
745 | (unsigned long long)next_bytenr, | 742 | next_bytenr, mirror_num); |
746 | mirror_num); | ||
747 | kfree(selected_super); | 743 | kfree(selected_super); |
748 | return -1; | 744 | return -1; |
749 | } | 745 | } |
@@ -767,7 +763,6 @@ static int btrfsic_process_superblock(struct btrfsic_state *state, | |||
767 | if (ret < (int)PAGE_CACHE_SIZE) { | 763 | if (ret < (int)PAGE_CACHE_SIZE) { |
768 | printk(KERN_INFO | 764 | printk(KERN_INFO |
769 | "btrfsic: read @logical %llu failed!\n", | 765 | "btrfsic: read @logical %llu failed!\n", |
770 | (unsigned long long) | ||
771 | tmp_next_block_ctx.start); | 766 | tmp_next_block_ctx.start); |
772 | btrfsic_release_block_ctx(&tmp_next_block_ctx); | 767 | btrfsic_release_block_ctx(&tmp_next_block_ctx); |
773 | kfree(selected_super); | 768 | kfree(selected_super); |
@@ -847,10 +842,8 @@ static int btrfsic_process_superblock_dev_mirror( | |||
847 | printk_in_rcu(KERN_INFO "New initial S-block (bdev %p, %s)" | 842 | printk_in_rcu(KERN_INFO "New initial S-block (bdev %p, %s)" |
848 | " @%llu (%s/%llu/%d)\n", | 843 | " @%llu (%s/%llu/%d)\n", |
849 | superblock_bdev, | 844 | superblock_bdev, |
850 | rcu_str_deref(device->name), | 845 | rcu_str_deref(device->name), dev_bytenr, |
851 | (unsigned long long)dev_bytenr, | 846 | dev_state->name, dev_bytenr, |
852 | dev_state->name, | ||
853 | (unsigned long long)dev_bytenr, | ||
854 | superblock_mirror_num); | 847 | superblock_mirror_num); |
855 | list_add(&superblock_tmp->all_blocks_node, | 848 | list_add(&superblock_tmp->all_blocks_node, |
856 | &state->all_blocks_list); | 849 | &state->all_blocks_list); |
@@ -906,7 +899,7 @@ static int btrfsic_process_superblock_dev_mirror( | |||
906 | next_bytenr, state->metablock_size); | 899 | next_bytenr, state->metablock_size); |
907 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) | 900 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) |
908 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", | 901 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", |
909 | (unsigned long long)next_bytenr, num_copies); | 902 | next_bytenr, num_copies); |
910 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { | 903 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { |
911 | struct btrfsic_block *next_block; | 904 | struct btrfsic_block *next_block; |
912 | struct btrfsic_block_data_ctx tmp_next_block_ctx; | 905 | struct btrfsic_block_data_ctx tmp_next_block_ctx; |
@@ -918,8 +911,7 @@ static int btrfsic_process_superblock_dev_mirror( | |||
918 | mirror_num)) { | 911 | mirror_num)) { |
919 | printk(KERN_INFO "btrfsic: btrfsic_map_block(" | 912 | printk(KERN_INFO "btrfsic: btrfsic_map_block(" |
920 | "bytenr @%llu, mirror %d) failed!\n", | 913 | "bytenr @%llu, mirror %d) failed!\n", |
921 | (unsigned long long)next_bytenr, | 914 | next_bytenr, mirror_num); |
922 | mirror_num); | ||
923 | brelse(bh); | 915 | brelse(bh); |
924 | return -1; | 916 | return -1; |
925 | } | 917 | } |
@@ -1009,13 +1001,9 @@ continue_with_new_stack_frame: | |||
1009 | printk(KERN_INFO | 1001 | printk(KERN_INFO |
1010 | "leaf %llu items %d generation %llu" | 1002 | "leaf %llu items %d generation %llu" |
1011 | " owner %llu\n", | 1003 | " owner %llu\n", |
1012 | (unsigned long long) | 1004 | sf->block_ctx->start, sf->nr, |
1013 | sf->block_ctx->start, | ||
1014 | sf->nr, | ||
1015 | (unsigned long long) | ||
1016 | btrfs_stack_header_generation( | 1005 | btrfs_stack_header_generation( |
1017 | &leafhdr->header), | 1006 | &leafhdr->header), |
1018 | (unsigned long long) | ||
1019 | btrfs_stack_header_owner( | 1007 | btrfs_stack_header_owner( |
1020 | &leafhdr->header)); | 1008 | &leafhdr->header)); |
1021 | } | 1009 | } |
@@ -1137,13 +1125,10 @@ leaf_item_out_of_bounce_error: | |||
1137 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) | 1125 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) |
1138 | printk(KERN_INFO "node %llu level %d items %d" | 1126 | printk(KERN_INFO "node %llu level %d items %d" |
1139 | " generation %llu owner %llu\n", | 1127 | " generation %llu owner %llu\n", |
1140 | (unsigned long long) | ||
1141 | sf->block_ctx->start, | 1128 | sf->block_ctx->start, |
1142 | nodehdr->header.level, sf->nr, | 1129 | nodehdr->header.level, sf->nr, |
1143 | (unsigned long long) | ||
1144 | btrfs_stack_header_generation( | 1130 | btrfs_stack_header_generation( |
1145 | &nodehdr->header), | 1131 | &nodehdr->header), |
1146 | (unsigned long long) | ||
1147 | btrfs_stack_header_owner( | 1132 | btrfs_stack_header_owner( |
1148 | &nodehdr->header)); | 1133 | &nodehdr->header)); |
1149 | } | 1134 | } |
@@ -1294,7 +1279,7 @@ static int btrfsic_create_link_to_next_block( | |||
1294 | next_bytenr, state->metablock_size); | 1279 | next_bytenr, state->metablock_size); |
1295 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) | 1280 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) |
1296 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", | 1281 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", |
1297 | (unsigned long long)next_bytenr, *num_copiesp); | 1282 | next_bytenr, *num_copiesp); |
1298 | *mirror_nump = 1; | 1283 | *mirror_nump = 1; |
1299 | } | 1284 | } |
1300 | 1285 | ||
@@ -1311,7 +1296,7 @@ static int btrfsic_create_link_to_next_block( | |||
1311 | if (ret) { | 1296 | if (ret) { |
1312 | printk(KERN_INFO | 1297 | printk(KERN_INFO |
1313 | "btrfsic: btrfsic_map_block(@%llu, mirror=%d) failed!\n", | 1298 | "btrfsic: btrfsic_map_block(@%llu, mirror=%d) failed!\n", |
1314 | (unsigned long long)next_bytenr, *mirror_nump); | 1299 | next_bytenr, *mirror_nump); |
1315 | btrfsic_release_block_ctx(next_block_ctx); | 1300 | btrfsic_release_block_ctx(next_block_ctx); |
1316 | *next_blockp = NULL; | 1301 | *next_blockp = NULL; |
1317 | return -1; | 1302 | return -1; |
@@ -1339,20 +1324,16 @@ static int btrfsic_create_link_to_next_block( | |||
1339 | "Referenced block @%llu (%s/%llu/%d)" | 1324 | "Referenced block @%llu (%s/%llu/%d)" |
1340 | " found in hash table, %c," | 1325 | " found in hash table, %c," |
1341 | " bytenr mismatch (!= stored %llu).\n", | 1326 | " bytenr mismatch (!= stored %llu).\n", |
1342 | (unsigned long long)next_bytenr, | 1327 | next_bytenr, next_block_ctx->dev->name, |
1343 | next_block_ctx->dev->name, | 1328 | next_block_ctx->dev_bytenr, *mirror_nump, |
1344 | (unsigned long long)next_block_ctx->dev_bytenr, | ||
1345 | *mirror_nump, | ||
1346 | btrfsic_get_block_type(state, next_block), | 1329 | btrfsic_get_block_type(state, next_block), |
1347 | (unsigned long long)next_block->logical_bytenr); | 1330 | next_block->logical_bytenr); |
1348 | } else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) | 1331 | } else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) |
1349 | printk(KERN_INFO | 1332 | printk(KERN_INFO |
1350 | "Referenced block @%llu (%s/%llu/%d)" | 1333 | "Referenced block @%llu (%s/%llu/%d)" |
1351 | " found in hash table, %c.\n", | 1334 | " found in hash table, %c.\n", |
1352 | (unsigned long long)next_bytenr, | 1335 | next_bytenr, next_block_ctx->dev->name, |
1353 | next_block_ctx->dev->name, | 1336 | next_block_ctx->dev_bytenr, *mirror_nump, |
1354 | (unsigned long long)next_block_ctx->dev_bytenr, | ||
1355 | *mirror_nump, | ||
1356 | btrfsic_get_block_type(state, next_block)); | 1337 | btrfsic_get_block_type(state, next_block)); |
1357 | next_block->logical_bytenr = next_bytenr; | 1338 | next_block->logical_bytenr = next_bytenr; |
1358 | 1339 | ||
@@ -1404,7 +1385,7 @@ static int btrfsic_create_link_to_next_block( | |||
1404 | if (ret < (int)next_block_ctx->len) { | 1385 | if (ret < (int)next_block_ctx->len) { |
1405 | printk(KERN_INFO | 1386 | printk(KERN_INFO |
1406 | "btrfsic: read block @logical %llu failed!\n", | 1387 | "btrfsic: read block @logical %llu failed!\n", |
1407 | (unsigned long long)next_bytenr); | 1388 | next_bytenr); |
1408 | btrfsic_release_block_ctx(next_block_ctx); | 1389 | btrfsic_release_block_ctx(next_block_ctx); |
1409 | *next_blockp = NULL; | 1390 | *next_blockp = NULL; |
1410 | return -1; | 1391 | return -1; |
@@ -1452,7 +1433,6 @@ static int btrfsic_handle_extent_data( | |||
1452 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERY_VERBOSE) | 1433 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERY_VERBOSE) |
1453 | printk(KERN_INFO "extent_data: type %u, disk_bytenr = %llu\n", | 1434 | printk(KERN_INFO "extent_data: type %u, disk_bytenr = %llu\n", |
1454 | file_extent_item.type, | 1435 | file_extent_item.type, |
1455 | (unsigned long long) | ||
1456 | btrfs_stack_file_extent_disk_bytenr( | 1436 | btrfs_stack_file_extent_disk_bytenr( |
1457 | &file_extent_item)); | 1437 | &file_extent_item)); |
1458 | return 0; | 1438 | return 0; |
@@ -1478,11 +1458,9 @@ static int btrfsic_handle_extent_data( | |||
1478 | printk(KERN_INFO "extent_data: type %u, disk_bytenr = %llu," | 1458 | printk(KERN_INFO "extent_data: type %u, disk_bytenr = %llu," |
1479 | " offset = %llu, num_bytes = %llu\n", | 1459 | " offset = %llu, num_bytes = %llu\n", |
1480 | file_extent_item.type, | 1460 | file_extent_item.type, |
1481 | (unsigned long long) | ||
1482 | btrfs_stack_file_extent_disk_bytenr(&file_extent_item), | 1461 | btrfs_stack_file_extent_disk_bytenr(&file_extent_item), |
1483 | (unsigned long long) | ||
1484 | btrfs_stack_file_extent_offset(&file_extent_item), | 1462 | btrfs_stack_file_extent_offset(&file_extent_item), |
1485 | (unsigned long long)num_bytes); | 1463 | num_bytes); |
1486 | while (num_bytes > 0) { | 1464 | while (num_bytes > 0) { |
1487 | u32 chunk_len; | 1465 | u32 chunk_len; |
1488 | int num_copies; | 1466 | int num_copies; |
@@ -1498,7 +1476,7 @@ static int btrfsic_handle_extent_data( | |||
1498 | next_bytenr, state->datablock_size); | 1476 | next_bytenr, state->datablock_size); |
1499 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) | 1477 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) |
1500 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", | 1478 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", |
1501 | (unsigned long long)next_bytenr, num_copies); | 1479 | next_bytenr, num_copies); |
1502 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { | 1480 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { |
1503 | struct btrfsic_block_data_ctx next_block_ctx; | 1481 | struct btrfsic_block_data_ctx next_block_ctx; |
1504 | struct btrfsic_block *next_block; | 1482 | struct btrfsic_block *next_block; |
@@ -1510,8 +1488,7 @@ static int btrfsic_handle_extent_data( | |||
1510 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERY_VERBOSE) | 1488 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERY_VERBOSE) |
1511 | printk(KERN_INFO | 1489 | printk(KERN_INFO |
1512 | "\tdisk_bytenr = %llu, num_bytes %u\n", | 1490 | "\tdisk_bytenr = %llu, num_bytes %u\n", |
1513 | (unsigned long long)next_bytenr, | 1491 | next_bytenr, chunk_len); |
1514 | chunk_len); | ||
1515 | ret = btrfsic_map_block(state, next_bytenr, | 1492 | ret = btrfsic_map_block(state, next_bytenr, |
1516 | chunk_len, &next_block_ctx, | 1493 | chunk_len, &next_block_ctx, |
1517 | mirror_num); | 1494 | mirror_num); |
@@ -1519,8 +1496,7 @@ static int btrfsic_handle_extent_data( | |||
1519 | printk(KERN_INFO | 1496 | printk(KERN_INFO |
1520 | "btrfsic: btrfsic_map_block(@%llu," | 1497 | "btrfsic: btrfsic_map_block(@%llu," |
1521 | " mirror=%d) failed!\n", | 1498 | " mirror=%d) failed!\n", |
1522 | (unsigned long long)next_bytenr, | 1499 | next_bytenr, mirror_num); |
1523 | mirror_num); | ||
1524 | return -1; | 1500 | return -1; |
1525 | } | 1501 | } |
1526 | 1502 | ||
@@ -1549,12 +1525,10 @@ static int btrfsic_handle_extent_data( | |||
1549 | " found in hash table, D," | 1525 | " found in hash table, D," |
1550 | " bytenr mismatch" | 1526 | " bytenr mismatch" |
1551 | " (!= stored %llu).\n", | 1527 | " (!= stored %llu).\n", |
1552 | (unsigned long long)next_bytenr, | 1528 | next_bytenr, |
1553 | next_block_ctx.dev->name, | 1529 | next_block_ctx.dev->name, |
1554 | (unsigned long long) | ||
1555 | next_block_ctx.dev_bytenr, | 1530 | next_block_ctx.dev_bytenr, |
1556 | mirror_num, | 1531 | mirror_num, |
1557 | (unsigned long long) | ||
1558 | next_block->logical_bytenr); | 1532 | next_block->logical_bytenr); |
1559 | } | 1533 | } |
1560 | next_block->logical_bytenr = next_bytenr; | 1534 | next_block->logical_bytenr = next_bytenr; |
@@ -1681,7 +1655,7 @@ static int btrfsic_read_block(struct btrfsic_state *state, | |||
1681 | if (block_ctx->dev_bytenr & ((u64)PAGE_CACHE_SIZE - 1)) { | 1655 | if (block_ctx->dev_bytenr & ((u64)PAGE_CACHE_SIZE - 1)) { |
1682 | printk(KERN_INFO | 1656 | printk(KERN_INFO |
1683 | "btrfsic: read_block() with unaligned bytenr %llu\n", | 1657 | "btrfsic: read_block() with unaligned bytenr %llu\n", |
1684 | (unsigned long long)block_ctx->dev_bytenr); | 1658 | block_ctx->dev_bytenr); |
1685 | return -1; | 1659 | return -1; |
1686 | } | 1660 | } |
1687 | 1661 | ||
@@ -1778,10 +1752,8 @@ static void btrfsic_dump_database(struct btrfsic_state *state) | |||
1778 | 1752 | ||
1779 | printk(KERN_INFO "%c-block @%llu (%s/%llu/%d)\n", | 1753 | printk(KERN_INFO "%c-block @%llu (%s/%llu/%d)\n", |
1780 | btrfsic_get_block_type(state, b_all), | 1754 | btrfsic_get_block_type(state, b_all), |
1781 | (unsigned long long)b_all->logical_bytenr, | 1755 | b_all->logical_bytenr, b_all->dev_state->name, |
1782 | b_all->dev_state->name, | 1756 | b_all->dev_bytenr, b_all->mirror_num); |
1783 | (unsigned long long)b_all->dev_bytenr, | ||
1784 | b_all->mirror_num); | ||
1785 | 1757 | ||
1786 | list_for_each(elem_ref_to, &b_all->ref_to_list) { | 1758 | list_for_each(elem_ref_to, &b_all->ref_to_list) { |
1787 | const struct btrfsic_block_link *const l = | 1759 | const struct btrfsic_block_link *const l = |
@@ -1793,16 +1765,13 @@ static void btrfsic_dump_database(struct btrfsic_state *state) | |||
1793 | " refers %u* to" | 1765 | " refers %u* to" |
1794 | " %c @%llu (%s/%llu/%d)\n", | 1766 | " %c @%llu (%s/%llu/%d)\n", |
1795 | btrfsic_get_block_type(state, b_all), | 1767 | btrfsic_get_block_type(state, b_all), |
1796 | (unsigned long long)b_all->logical_bytenr, | 1768 | b_all->logical_bytenr, b_all->dev_state->name, |
1797 | b_all->dev_state->name, | 1769 | b_all->dev_bytenr, b_all->mirror_num, |
1798 | (unsigned long long)b_all->dev_bytenr, | ||
1799 | b_all->mirror_num, | ||
1800 | l->ref_cnt, | 1770 | l->ref_cnt, |
1801 | btrfsic_get_block_type(state, l->block_ref_to), | 1771 | btrfsic_get_block_type(state, l->block_ref_to), |
1802 | (unsigned long long) | ||
1803 | l->block_ref_to->logical_bytenr, | 1772 | l->block_ref_to->logical_bytenr, |
1804 | l->block_ref_to->dev_state->name, | 1773 | l->block_ref_to->dev_state->name, |
1805 | (unsigned long long)l->block_ref_to->dev_bytenr, | 1774 | l->block_ref_to->dev_bytenr, |
1806 | l->block_ref_to->mirror_num); | 1775 | l->block_ref_to->mirror_num); |
1807 | } | 1776 | } |
1808 | 1777 | ||
@@ -1816,16 +1785,12 @@ static void btrfsic_dump_database(struct btrfsic_state *state) | |||
1816 | " is ref %u* from" | 1785 | " is ref %u* from" |
1817 | " %c @%llu (%s/%llu/%d)\n", | 1786 | " %c @%llu (%s/%llu/%d)\n", |
1818 | btrfsic_get_block_type(state, b_all), | 1787 | btrfsic_get_block_type(state, b_all), |
1819 | (unsigned long long)b_all->logical_bytenr, | 1788 | b_all->logical_bytenr, b_all->dev_state->name, |
1820 | b_all->dev_state->name, | 1789 | b_all->dev_bytenr, b_all->mirror_num, |
1821 | (unsigned long long)b_all->dev_bytenr, | ||
1822 | b_all->mirror_num, | ||
1823 | l->ref_cnt, | 1790 | l->ref_cnt, |
1824 | btrfsic_get_block_type(state, l->block_ref_from), | 1791 | btrfsic_get_block_type(state, l->block_ref_from), |
1825 | (unsigned long long) | ||
1826 | l->block_ref_from->logical_bytenr, | 1792 | l->block_ref_from->logical_bytenr, |
1827 | l->block_ref_from->dev_state->name, | 1793 | l->block_ref_from->dev_state->name, |
1828 | (unsigned long long) | ||
1829 | l->block_ref_from->dev_bytenr, | 1794 | l->block_ref_from->dev_bytenr, |
1830 | l->block_ref_from->mirror_num); | 1795 | l->block_ref_from->mirror_num); |
1831 | } | 1796 | } |
@@ -1942,12 +1907,9 @@ again: | |||
1942 | " found in hash table, %c," | 1907 | " found in hash table, %c," |
1943 | " bytenr mismatch" | 1908 | " bytenr mismatch" |
1944 | " (!= stored %llu).\n", | 1909 | " (!= stored %llu).\n", |
1945 | (unsigned long long)bytenr, | 1910 | bytenr, dev_state->name, dev_bytenr, |
1946 | dev_state->name, | ||
1947 | (unsigned long long)dev_bytenr, | ||
1948 | block->mirror_num, | 1911 | block->mirror_num, |
1949 | btrfsic_get_block_type(state, block), | 1912 | btrfsic_get_block_type(state, block), |
1950 | (unsigned long long) | ||
1951 | block->logical_bytenr); | 1913 | block->logical_bytenr); |
1952 | block->logical_bytenr = bytenr; | 1914 | block->logical_bytenr = bytenr; |
1953 | } else if (state->print_mask & | 1915 | } else if (state->print_mask & |
@@ -1955,9 +1917,7 @@ again: | |||
1955 | printk(KERN_INFO | 1917 | printk(KERN_INFO |
1956 | "Written block @%llu (%s/%llu/%d)" | 1918 | "Written block @%llu (%s/%llu/%d)" |
1957 | " found in hash table, %c.\n", | 1919 | " found in hash table, %c.\n", |
1958 | (unsigned long long)bytenr, | 1920 | bytenr, dev_state->name, dev_bytenr, |
1959 | dev_state->name, | ||
1960 | (unsigned long long)dev_bytenr, | ||
1961 | block->mirror_num, | 1921 | block->mirror_num, |
1962 | btrfsic_get_block_type(state, block)); | 1922 | btrfsic_get_block_type(state, block)); |
1963 | } else { | 1923 | } else { |
@@ -1973,9 +1933,7 @@ again: | |||
1973 | printk(KERN_INFO | 1933 | printk(KERN_INFO |
1974 | "Written block @%llu (%s/%llu/%d)" | 1934 | "Written block @%llu (%s/%llu/%d)" |
1975 | " found in hash table, %c.\n", | 1935 | " found in hash table, %c.\n", |
1976 | (unsigned long long)bytenr, | 1936 | bytenr, dev_state->name, dev_bytenr, |
1977 | dev_state->name, | ||
1978 | (unsigned long long)dev_bytenr, | ||
1979 | block->mirror_num, | 1937 | block->mirror_num, |
1980 | btrfsic_get_block_type(state, block)); | 1938 | btrfsic_get_block_type(state, block)); |
1981 | } | 1939 | } |
@@ -1992,21 +1950,14 @@ again: | |||
1992 | " new(gen=%llu)," | 1950 | " new(gen=%llu)," |
1993 | " which is referenced by most recent superblock" | 1951 | " which is referenced by most recent superblock" |
1994 | " (superblockgen=%llu)!\n", | 1952 | " (superblockgen=%llu)!\n", |
1995 | btrfsic_get_block_type(state, block), | 1953 | btrfsic_get_block_type(state, block), bytenr, |
1996 | (unsigned long long)bytenr, | 1954 | dev_state->name, dev_bytenr, block->mirror_num, |
1997 | dev_state->name, | 1955 | block->generation, |
1998 | (unsigned long long)dev_bytenr, | ||
1999 | block->mirror_num, | ||
2000 | (unsigned long long)block->generation, | ||
2001 | (unsigned long long) | ||
2002 | btrfs_disk_key_objectid(&block->disk_key), | 1956 | btrfs_disk_key_objectid(&block->disk_key), |
2003 | block->disk_key.type, | 1957 | block->disk_key.type, |
2004 | (unsigned long long) | ||
2005 | btrfs_disk_key_offset(&block->disk_key), | 1958 | btrfs_disk_key_offset(&block->disk_key), |
2006 | (unsigned long long) | ||
2007 | btrfs_stack_header_generation( | 1959 | btrfs_stack_header_generation( |
2008 | (struct btrfs_header *) mapped_datav[0]), | 1960 | (struct btrfs_header *) mapped_datav[0]), |
2009 | (unsigned long long) | ||
2010 | state->max_superblock_generation); | 1961 | state->max_superblock_generation); |
2011 | btrfsic_dump_tree(state); | 1962 | btrfsic_dump_tree(state); |
2012 | } | 1963 | } |
@@ -2015,13 +1966,9 @@ again: | |||
2015 | printk(KERN_INFO "btrfs: attempt to overwrite %c-block" | 1966 | printk(KERN_INFO "btrfs: attempt to overwrite %c-block" |
2016 | " @%llu (%s/%llu/%d), oldgen=%llu, newgen=%llu," | 1967 | " @%llu (%s/%llu/%d), oldgen=%llu, newgen=%llu," |
2017 | " which is not yet iodone!\n", | 1968 | " which is not yet iodone!\n", |
2018 | btrfsic_get_block_type(state, block), | 1969 | btrfsic_get_block_type(state, block), bytenr, |
2019 | (unsigned long long)bytenr, | 1970 | dev_state->name, dev_bytenr, block->mirror_num, |
2020 | dev_state->name, | 1971 | block->generation, |
2021 | (unsigned long long)dev_bytenr, | ||
2022 | block->mirror_num, | ||
2023 | (unsigned long long)block->generation, | ||
2024 | (unsigned long long) | ||
2025 | btrfs_stack_header_generation( | 1972 | btrfs_stack_header_generation( |
2026 | (struct btrfs_header *) | 1973 | (struct btrfs_header *) |
2027 | mapped_datav[0])); | 1974 | mapped_datav[0])); |
@@ -2064,7 +2011,7 @@ again: | |||
2064 | if (ret) { | 2011 | if (ret) { |
2065 | printk(KERN_INFO | 2012 | printk(KERN_INFO |
2066 | "btrfsic: btrfsic_map_block(root @%llu)" | 2013 | "btrfsic: btrfsic_map_block(root @%llu)" |
2067 | " failed!\n", (unsigned long long)bytenr); | 2014 | " failed!\n", bytenr); |
2068 | goto continue_loop; | 2015 | goto continue_loop; |
2069 | } | 2016 | } |
2070 | block_ctx.datav = mapped_datav; | 2017 | block_ctx.datav = mapped_datav; |
@@ -2148,7 +2095,7 @@ again: | |||
2148 | printk(KERN_INFO | 2095 | printk(KERN_INFO |
2149 | "btrfsic: btrfsic_process_metablock" | 2096 | "btrfsic: btrfsic_process_metablock" |
2150 | "(root @%llu) failed!\n", | 2097 | "(root @%llu) failed!\n", |
2151 | (unsigned long long)dev_bytenr); | 2098 | dev_bytenr); |
2152 | } else { | 2099 | } else { |
2153 | block->is_metadata = 0; | 2100 | block->is_metadata = 0; |
2154 | block->mirror_num = 0; /* unknown */ | 2101 | block->mirror_num = 0; /* unknown */ |
@@ -2176,8 +2123,7 @@ again: | |||
2176 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) | 2123 | if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) |
2177 | printk(KERN_INFO "Written block (%s/%llu/?)" | 2124 | printk(KERN_INFO "Written block (%s/%llu/?)" |
2178 | " !found in hash table, D.\n", | 2125 | " !found in hash table, D.\n", |
2179 | dev_state->name, | 2126 | dev_state->name, dev_bytenr); |
2180 | (unsigned long long)dev_bytenr); | ||
2181 | if (!state->include_extent_data) { | 2127 | if (!state->include_extent_data) { |
2182 | /* ignore that written D block */ | 2128 | /* ignore that written D block */ |
2183 | goto continue_loop; | 2129 | goto continue_loop; |
@@ -2201,9 +2147,7 @@ again: | |||
2201 | printk(KERN_INFO | 2147 | printk(KERN_INFO |
2202 | "Written block @%llu (%s/%llu/?)" | 2148 | "Written block @%llu (%s/%llu/?)" |
2203 | " !found in hash table, M.\n", | 2149 | " !found in hash table, M.\n", |
2204 | (unsigned long long)bytenr, | 2150 | bytenr, dev_state->name, dev_bytenr); |
2205 | dev_state->name, | ||
2206 | (unsigned long long)dev_bytenr); | ||
2207 | 2151 | ||
2208 | ret = btrfsic_map_block(state, bytenr, processed_len, | 2152 | ret = btrfsic_map_block(state, bytenr, processed_len, |
2209 | &block_ctx, 0); | 2153 | &block_ctx, 0); |
@@ -2211,7 +2155,7 @@ again: | |||
2211 | printk(KERN_INFO | 2155 | printk(KERN_INFO |
2212 | "btrfsic: btrfsic_map_block(root @%llu)" | 2156 | "btrfsic: btrfsic_map_block(root @%llu)" |
2213 | " failed!\n", | 2157 | " failed!\n", |
2214 | (unsigned long long)dev_bytenr); | 2158 | dev_bytenr); |
2215 | goto continue_loop; | 2159 | goto continue_loop; |
2216 | } | 2160 | } |
2217 | } | 2161 | } |
@@ -2276,10 +2220,8 @@ again: | |||
2276 | printk(KERN_INFO | 2220 | printk(KERN_INFO |
2277 | "New written %c-block @%llu (%s/%llu/%d)\n", | 2221 | "New written %c-block @%llu (%s/%llu/%d)\n", |
2278 | is_metadata ? 'M' : 'D', | 2222 | is_metadata ? 'M' : 'D', |
2279 | (unsigned long long)block->logical_bytenr, | 2223 | block->logical_bytenr, block->dev_state->name, |
2280 | block->dev_state->name, | 2224 | block->dev_bytenr, block->mirror_num); |
2281 | (unsigned long long)block->dev_bytenr, | ||
2282 | block->mirror_num); | ||
2283 | list_add(&block->all_blocks_node, &state->all_blocks_list); | 2225 | list_add(&block->all_blocks_node, &state->all_blocks_list); |
2284 | btrfsic_block_hashtable_add(block, &state->block_hashtable); | 2226 | btrfsic_block_hashtable_add(block, &state->block_hashtable); |
2285 | 2227 | ||
@@ -2290,7 +2232,7 @@ again: | |||
2290 | printk(KERN_INFO | 2232 | printk(KERN_INFO |
2291 | "btrfsic: process_metablock(root @%llu)" | 2233 | "btrfsic: process_metablock(root @%llu)" |
2292 | " failed!\n", | 2234 | " failed!\n", |
2293 | (unsigned long long)dev_bytenr); | 2235 | dev_bytenr); |
2294 | } | 2236 | } |
2295 | btrfsic_release_block_ctx(&block_ctx); | 2237 | btrfsic_release_block_ctx(&block_ctx); |
2296 | } | 2238 | } |
@@ -2328,10 +2270,8 @@ static void btrfsic_bio_end_io(struct bio *bp, int bio_error_status) | |||
2328 | "bio_end_io(err=%d) for %c @%llu (%s/%llu/%d)\n", | 2270 | "bio_end_io(err=%d) for %c @%llu (%s/%llu/%d)\n", |
2329 | bio_error_status, | 2271 | bio_error_status, |
2330 | btrfsic_get_block_type(dev_state->state, block), | 2272 | btrfsic_get_block_type(dev_state->state, block), |
2331 | (unsigned long long)block->logical_bytenr, | 2273 | block->logical_bytenr, dev_state->name, |
2332 | dev_state->name, | 2274 | block->dev_bytenr, block->mirror_num); |
2333 | (unsigned long long)block->dev_bytenr, | ||
2334 | block->mirror_num); | ||
2335 | next_block = block->next_in_same_bio; | 2275 | next_block = block->next_in_same_bio; |
2336 | block->iodone_w_error = iodone_w_error; | 2276 | block->iodone_w_error = iodone_w_error; |
2337 | if (block->submit_bio_bh_rw & REQ_FLUSH) { | 2277 | if (block->submit_bio_bh_rw & REQ_FLUSH) { |
@@ -2341,7 +2281,6 @@ static void btrfsic_bio_end_io(struct bio *bp, int bio_error_status) | |||
2341 | printk(KERN_INFO | 2281 | printk(KERN_INFO |
2342 | "bio_end_io() new %s flush_gen=%llu\n", | 2282 | "bio_end_io() new %s flush_gen=%llu\n", |
2343 | dev_state->name, | 2283 | dev_state->name, |
2344 | (unsigned long long) | ||
2345 | dev_state->last_flush_gen); | 2284 | dev_state->last_flush_gen); |
2346 | } | 2285 | } |
2347 | if (block->submit_bio_bh_rw & REQ_FUA) | 2286 | if (block->submit_bio_bh_rw & REQ_FUA) |
@@ -2367,10 +2306,8 @@ static void btrfsic_bh_end_io(struct buffer_head *bh, int uptodate) | |||
2367 | "bh_end_io(error=%d) for %c @%llu (%s/%llu/%d)\n", | 2306 | "bh_end_io(error=%d) for %c @%llu (%s/%llu/%d)\n", |
2368 | iodone_w_error, | 2307 | iodone_w_error, |
2369 | btrfsic_get_block_type(dev_state->state, block), | 2308 | btrfsic_get_block_type(dev_state->state, block), |
2370 | (unsigned long long)block->logical_bytenr, | 2309 | block->logical_bytenr, block->dev_state->name, |
2371 | block->dev_state->name, | 2310 | block->dev_bytenr, block->mirror_num); |
2372 | (unsigned long long)block->dev_bytenr, | ||
2373 | block->mirror_num); | ||
2374 | 2311 | ||
2375 | block->iodone_w_error = iodone_w_error; | 2312 | block->iodone_w_error = iodone_w_error; |
2376 | if (block->submit_bio_bh_rw & REQ_FLUSH) { | 2313 | if (block->submit_bio_bh_rw & REQ_FLUSH) { |
@@ -2379,8 +2316,7 @@ static void btrfsic_bh_end_io(struct buffer_head *bh, int uptodate) | |||
2379 | BTRFSIC_PRINT_MASK_END_IO_BIO_BH)) | 2316 | BTRFSIC_PRINT_MASK_END_IO_BIO_BH)) |
2380 | printk(KERN_INFO | 2317 | printk(KERN_INFO |
2381 | "bh_end_io() new %s flush_gen=%llu\n", | 2318 | "bh_end_io() new %s flush_gen=%llu\n", |
2382 | dev_state->name, | 2319 | dev_state->name, dev_state->last_flush_gen); |
2383 | (unsigned long long)dev_state->last_flush_gen); | ||
2384 | } | 2320 | } |
2385 | if (block->submit_bio_bh_rw & REQ_FUA) | 2321 | if (block->submit_bio_bh_rw & REQ_FUA) |
2386 | block->flush_gen = 0; /* FUA completed means block is on disk */ | 2322 | block->flush_gen = 0; /* FUA completed means block is on disk */ |
@@ -2405,26 +2341,20 @@ static int btrfsic_process_written_superblock( | |||
2405 | printk(KERN_INFO | 2341 | printk(KERN_INFO |
2406 | "btrfsic: superblock @%llu (%s/%llu/%d)" | 2342 | "btrfsic: superblock @%llu (%s/%llu/%d)" |
2407 | " with old gen %llu <= %llu\n", | 2343 | " with old gen %llu <= %llu\n", |
2408 | (unsigned long long)superblock->logical_bytenr, | 2344 | superblock->logical_bytenr, |
2409 | superblock->dev_state->name, | 2345 | superblock->dev_state->name, |
2410 | (unsigned long long)superblock->dev_bytenr, | 2346 | superblock->dev_bytenr, superblock->mirror_num, |
2411 | superblock->mirror_num, | ||
2412 | (unsigned long long) | ||
2413 | btrfs_super_generation(super_hdr), | 2347 | btrfs_super_generation(super_hdr), |
2414 | (unsigned long long) | ||
2415 | state->max_superblock_generation); | 2348 | state->max_superblock_generation); |
2416 | } else { | 2349 | } else { |
2417 | if (state->print_mask & BTRFSIC_PRINT_MASK_SUPERBLOCK_WRITE) | 2350 | if (state->print_mask & BTRFSIC_PRINT_MASK_SUPERBLOCK_WRITE) |
2418 | printk(KERN_INFO | 2351 | printk(KERN_INFO |
2419 | "btrfsic: got new superblock @%llu (%s/%llu/%d)" | 2352 | "btrfsic: got new superblock @%llu (%s/%llu/%d)" |
2420 | " with new gen %llu > %llu\n", | 2353 | " with new gen %llu > %llu\n", |
2421 | (unsigned long long)superblock->logical_bytenr, | 2354 | superblock->logical_bytenr, |
2422 | superblock->dev_state->name, | 2355 | superblock->dev_state->name, |
2423 | (unsigned long long)superblock->dev_bytenr, | 2356 | superblock->dev_bytenr, superblock->mirror_num, |
2424 | superblock->mirror_num, | ||
2425 | (unsigned long long) | ||
2426 | btrfs_super_generation(super_hdr), | 2357 | btrfs_super_generation(super_hdr), |
2427 | (unsigned long long) | ||
2428 | state->max_superblock_generation); | 2358 | state->max_superblock_generation); |
2429 | 2359 | ||
2430 | state->max_superblock_generation = | 2360 | state->max_superblock_generation = |
@@ -2455,8 +2385,7 @@ static int btrfsic_process_written_superblock( | |||
2455 | next_bytenr = btrfs_super_root(super_hdr); | 2385 | next_bytenr = btrfs_super_root(super_hdr); |
2456 | if (state->print_mask & | 2386 | if (state->print_mask & |
2457 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 2387 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
2458 | printk(KERN_INFO "root@%llu\n", | 2388 | printk(KERN_INFO "root@%llu\n", next_bytenr); |
2459 | (unsigned long long)next_bytenr); | ||
2460 | break; | 2389 | break; |
2461 | case 1: | 2390 | case 1: |
2462 | btrfs_set_disk_key_objectid(&tmp_disk_key, | 2391 | btrfs_set_disk_key_objectid(&tmp_disk_key, |
@@ -2465,8 +2394,7 @@ static int btrfsic_process_written_superblock( | |||
2465 | next_bytenr = btrfs_super_chunk_root(super_hdr); | 2394 | next_bytenr = btrfs_super_chunk_root(super_hdr); |
2466 | if (state->print_mask & | 2395 | if (state->print_mask & |
2467 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 2396 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
2468 | printk(KERN_INFO "chunk@%llu\n", | 2397 | printk(KERN_INFO "chunk@%llu\n", next_bytenr); |
2469 | (unsigned long long)next_bytenr); | ||
2470 | break; | 2398 | break; |
2471 | case 2: | 2399 | case 2: |
2472 | btrfs_set_disk_key_objectid(&tmp_disk_key, | 2400 | btrfs_set_disk_key_objectid(&tmp_disk_key, |
@@ -2477,8 +2405,7 @@ static int btrfsic_process_written_superblock( | |||
2477 | continue; | 2405 | continue; |
2478 | if (state->print_mask & | 2406 | if (state->print_mask & |
2479 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) | 2407 | BTRFSIC_PRINT_MASK_ROOT_CHUNK_LOG_TREE_LOCATION) |
2480 | printk(KERN_INFO "log@%llu\n", | 2408 | printk(KERN_INFO "log@%llu\n", next_bytenr); |
2481 | (unsigned long long)next_bytenr); | ||
2482 | break; | 2409 | break; |
2483 | } | 2410 | } |
2484 | 2411 | ||
@@ -2487,7 +2414,7 @@ static int btrfsic_process_written_superblock( | |||
2487 | next_bytenr, BTRFS_SUPER_INFO_SIZE); | 2414 | next_bytenr, BTRFS_SUPER_INFO_SIZE); |
2488 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) | 2415 | if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES) |
2489 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", | 2416 | printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n", |
2490 | (unsigned long long)next_bytenr, num_copies); | 2417 | next_bytenr, num_copies); |
2491 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { | 2418 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { |
2492 | int was_created; | 2419 | int was_created; |
2493 | 2420 | ||
@@ -2503,8 +2430,7 @@ static int btrfsic_process_written_superblock( | |||
2503 | printk(KERN_INFO | 2430 | printk(KERN_INFO |
2504 | "btrfsic: btrfsic_map_block(@%llu," | 2431 | "btrfsic: btrfsic_map_block(@%llu," |
2505 | " mirror=%d) failed!\n", | 2432 | " mirror=%d) failed!\n", |
2506 | (unsigned long long)next_bytenr, | 2433 | next_bytenr, mirror_num); |
2507 | mirror_num); | ||
2508 | return -1; | 2434 | return -1; |
2509 | } | 2435 | } |
2510 | 2436 | ||
@@ -2589,26 +2515,22 @@ static int btrfsic_check_all_ref_blocks(struct btrfsic_state *state, | |||
2589 | " %u* refers to %c @%llu (%s/%llu/%d)\n", | 2515 | " %u* refers to %c @%llu (%s/%llu/%d)\n", |
2590 | recursion_level, | 2516 | recursion_level, |
2591 | btrfsic_get_block_type(state, block), | 2517 | btrfsic_get_block_type(state, block), |
2592 | (unsigned long long)block->logical_bytenr, | 2518 | block->logical_bytenr, block->dev_state->name, |
2593 | block->dev_state->name, | 2519 | block->dev_bytenr, block->mirror_num, |
2594 | (unsigned long long)block->dev_bytenr, | ||
2595 | block->mirror_num, | ||
2596 | l->ref_cnt, | 2520 | l->ref_cnt, |
2597 | btrfsic_get_block_type(state, l->block_ref_to), | 2521 | btrfsic_get_block_type(state, l->block_ref_to), |
2598 | (unsigned long long) | ||
2599 | l->block_ref_to->logical_bytenr, | 2522 | l->block_ref_to->logical_bytenr, |
2600 | l->block_ref_to->dev_state->name, | 2523 | l->block_ref_to->dev_state->name, |
2601 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2524 | l->block_ref_to->dev_bytenr, |
2602 | l->block_ref_to->mirror_num); | 2525 | l->block_ref_to->mirror_num); |
2603 | if (l->block_ref_to->never_written) { | 2526 | if (l->block_ref_to->never_written) { |
2604 | printk(KERN_INFO "btrfs: attempt to write superblock" | 2527 | printk(KERN_INFO "btrfs: attempt to write superblock" |
2605 | " which references block %c @%llu (%s/%llu/%d)" | 2528 | " which references block %c @%llu (%s/%llu/%d)" |
2606 | " which is never written!\n", | 2529 | " which is never written!\n", |
2607 | btrfsic_get_block_type(state, l->block_ref_to), | 2530 | btrfsic_get_block_type(state, l->block_ref_to), |
2608 | (unsigned long long) | ||
2609 | l->block_ref_to->logical_bytenr, | 2531 | l->block_ref_to->logical_bytenr, |
2610 | l->block_ref_to->dev_state->name, | 2532 | l->block_ref_to->dev_state->name, |
2611 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2533 | l->block_ref_to->dev_bytenr, |
2612 | l->block_ref_to->mirror_num); | 2534 | l->block_ref_to->mirror_num); |
2613 | ret = -1; | 2535 | ret = -1; |
2614 | } else if (!l->block_ref_to->is_iodone) { | 2536 | } else if (!l->block_ref_to->is_iodone) { |
@@ -2616,10 +2538,9 @@ static int btrfsic_check_all_ref_blocks(struct btrfsic_state *state, | |||
2616 | " which references block %c @%llu (%s/%llu/%d)" | 2538 | " which references block %c @%llu (%s/%llu/%d)" |
2617 | " which is not yet iodone!\n", | 2539 | " which is not yet iodone!\n", |
2618 | btrfsic_get_block_type(state, l->block_ref_to), | 2540 | btrfsic_get_block_type(state, l->block_ref_to), |
2619 | (unsigned long long) | ||
2620 | l->block_ref_to->logical_bytenr, | 2541 | l->block_ref_to->logical_bytenr, |
2621 | l->block_ref_to->dev_state->name, | 2542 | l->block_ref_to->dev_state->name, |
2622 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2543 | l->block_ref_to->dev_bytenr, |
2623 | l->block_ref_to->mirror_num); | 2544 | l->block_ref_to->mirror_num); |
2624 | ret = -1; | 2545 | ret = -1; |
2625 | } else if (l->block_ref_to->iodone_w_error) { | 2546 | } else if (l->block_ref_to->iodone_w_error) { |
@@ -2627,10 +2548,9 @@ static int btrfsic_check_all_ref_blocks(struct btrfsic_state *state, | |||
2627 | " which references block %c @%llu (%s/%llu/%d)" | 2548 | " which references block %c @%llu (%s/%llu/%d)" |
2628 | " which has write error!\n", | 2549 | " which has write error!\n", |
2629 | btrfsic_get_block_type(state, l->block_ref_to), | 2550 | btrfsic_get_block_type(state, l->block_ref_to), |
2630 | (unsigned long long) | ||
2631 | l->block_ref_to->logical_bytenr, | 2551 | l->block_ref_to->logical_bytenr, |
2632 | l->block_ref_to->dev_state->name, | 2552 | l->block_ref_to->dev_state->name, |
2633 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2553 | l->block_ref_to->dev_bytenr, |
2634 | l->block_ref_to->mirror_num); | 2554 | l->block_ref_to->mirror_num); |
2635 | ret = -1; | 2555 | ret = -1; |
2636 | } else if (l->parent_generation != | 2556 | } else if (l->parent_generation != |
@@ -2644,13 +2564,12 @@ static int btrfsic_check_all_ref_blocks(struct btrfsic_state *state, | |||
2644 | " with generation %llu !=" | 2564 | " with generation %llu !=" |
2645 | " parent generation %llu!\n", | 2565 | " parent generation %llu!\n", |
2646 | btrfsic_get_block_type(state, l->block_ref_to), | 2566 | btrfsic_get_block_type(state, l->block_ref_to), |
2647 | (unsigned long long) | ||
2648 | l->block_ref_to->logical_bytenr, | 2567 | l->block_ref_to->logical_bytenr, |
2649 | l->block_ref_to->dev_state->name, | 2568 | l->block_ref_to->dev_state->name, |
2650 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2569 | l->block_ref_to->dev_bytenr, |
2651 | l->block_ref_to->mirror_num, | 2570 | l->block_ref_to->mirror_num, |
2652 | (unsigned long long)l->block_ref_to->generation, | 2571 | l->block_ref_to->generation, |
2653 | (unsigned long long)l->parent_generation); | 2572 | l->parent_generation); |
2654 | ret = -1; | 2573 | ret = -1; |
2655 | } else if (l->block_ref_to->flush_gen > | 2574 | } else if (l->block_ref_to->flush_gen > |
2656 | l->block_ref_to->dev_state->last_flush_gen) { | 2575 | l->block_ref_to->dev_state->last_flush_gen) { |
@@ -2660,13 +2579,10 @@ static int btrfsic_check_all_ref_blocks(struct btrfsic_state *state, | |||
2660 | " (block flush_gen=%llu," | 2579 | " (block flush_gen=%llu," |
2661 | " dev->flush_gen=%llu)!\n", | 2580 | " dev->flush_gen=%llu)!\n", |
2662 | btrfsic_get_block_type(state, l->block_ref_to), | 2581 | btrfsic_get_block_type(state, l->block_ref_to), |
2663 | (unsigned long long) | ||
2664 | l->block_ref_to->logical_bytenr, | 2582 | l->block_ref_to->logical_bytenr, |
2665 | l->block_ref_to->dev_state->name, | 2583 | l->block_ref_to->dev_state->name, |
2666 | (unsigned long long)l->block_ref_to->dev_bytenr, | 2584 | l->block_ref_to->dev_bytenr, |
2667 | l->block_ref_to->mirror_num, | 2585 | l->block_ref_to->mirror_num, block->flush_gen, |
2668 | (unsigned long long)block->flush_gen, | ||
2669 | (unsigned long long) | ||
2670 | l->block_ref_to->dev_state->last_flush_gen); | 2586 | l->block_ref_to->dev_state->last_flush_gen); |
2671 | ret = -1; | 2587 | ret = -1; |
2672 | } else if (-1 == btrfsic_check_all_ref_blocks(state, | 2588 | } else if (-1 == btrfsic_check_all_ref_blocks(state, |
@@ -2711,16 +2627,12 @@ static int btrfsic_is_block_ref_by_superblock( | |||
2711 | " is ref %u* from %c @%llu (%s/%llu/%d)\n", | 2627 | " is ref %u* from %c @%llu (%s/%llu/%d)\n", |
2712 | recursion_level, | 2628 | recursion_level, |
2713 | btrfsic_get_block_type(state, block), | 2629 | btrfsic_get_block_type(state, block), |
2714 | (unsigned long long)block->logical_bytenr, | 2630 | block->logical_bytenr, block->dev_state->name, |
2715 | block->dev_state->name, | 2631 | block->dev_bytenr, block->mirror_num, |
2716 | (unsigned long long)block->dev_bytenr, | ||
2717 | block->mirror_num, | ||
2718 | l->ref_cnt, | 2632 | l->ref_cnt, |
2719 | btrfsic_get_block_type(state, l->block_ref_from), | 2633 | btrfsic_get_block_type(state, l->block_ref_from), |
2720 | (unsigned long long) | ||
2721 | l->block_ref_from->logical_bytenr, | 2634 | l->block_ref_from->logical_bytenr, |
2722 | l->block_ref_from->dev_state->name, | 2635 | l->block_ref_from->dev_state->name, |
2723 | (unsigned long long) | ||
2724 | l->block_ref_from->dev_bytenr, | 2636 | l->block_ref_from->dev_bytenr, |
2725 | l->block_ref_from->mirror_num); | 2637 | l->block_ref_from->mirror_num); |
2726 | if (l->block_ref_from->is_superblock && | 2638 | if (l->block_ref_from->is_superblock && |
@@ -2747,14 +2659,12 @@ static void btrfsic_print_add_link(const struct btrfsic_state *state, | |||
2747 | " to %c @%llu (%s/%llu/%d).\n", | 2659 | " to %c @%llu (%s/%llu/%d).\n", |
2748 | l->ref_cnt, | 2660 | l->ref_cnt, |
2749 | btrfsic_get_block_type(state, l->block_ref_from), | 2661 | btrfsic_get_block_type(state, l->block_ref_from), |
2750 | (unsigned long long)l->block_ref_from->logical_bytenr, | 2662 | l->block_ref_from->logical_bytenr, |
2751 | l->block_ref_from->dev_state->name, | 2663 | l->block_ref_from->dev_state->name, |
2752 | (unsigned long long)l->block_ref_from->dev_bytenr, | 2664 | l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, |
2753 | l->block_ref_from->mirror_num, | ||
2754 | btrfsic_get_block_type(state, l->block_ref_to), | 2665 | btrfsic_get_block_type(state, l->block_ref_to), |
2755 | (unsigned long long)l->block_ref_to->logical_bytenr, | 2666 | l->block_ref_to->logical_bytenr, |
2756 | l->block_ref_to->dev_state->name, | 2667 | l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, |
2757 | (unsigned long long)l->block_ref_to->dev_bytenr, | ||
2758 | l->block_ref_to->mirror_num); | 2668 | l->block_ref_to->mirror_num); |
2759 | } | 2669 | } |
2760 | 2670 | ||
@@ -2766,14 +2676,12 @@ static void btrfsic_print_rem_link(const struct btrfsic_state *state, | |||
2766 | " to %c @%llu (%s/%llu/%d).\n", | 2676 | " to %c @%llu (%s/%llu/%d).\n", |
2767 | l->ref_cnt, | 2677 | l->ref_cnt, |
2768 | btrfsic_get_block_type(state, l->block_ref_from), | 2678 | btrfsic_get_block_type(state, l->block_ref_from), |
2769 | (unsigned long long)l->block_ref_from->logical_bytenr, | 2679 | l->block_ref_from->logical_bytenr, |
2770 | l->block_ref_from->dev_state->name, | 2680 | l->block_ref_from->dev_state->name, |
2771 | (unsigned long long)l->block_ref_from->dev_bytenr, | 2681 | l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, |
2772 | l->block_ref_from->mirror_num, | ||
2773 | btrfsic_get_block_type(state, l->block_ref_to), | 2682 | btrfsic_get_block_type(state, l->block_ref_to), |
2774 | (unsigned long long)l->block_ref_to->logical_bytenr, | 2683 | l->block_ref_to->logical_bytenr, |
2775 | l->block_ref_to->dev_state->name, | 2684 | l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, |
2776 | (unsigned long long)l->block_ref_to->dev_bytenr, | ||
2777 | l->block_ref_to->mirror_num); | 2685 | l->block_ref_to->mirror_num); |
2778 | } | 2686 | } |
2779 | 2687 | ||
@@ -2817,10 +2725,8 @@ static void btrfsic_dump_tree_sub(const struct btrfsic_state *state, | |||
2817 | */ | 2725 | */ |
2818 | indent_add = sprintf(buf, "%c-%llu(%s/%llu/%d)", | 2726 | indent_add = sprintf(buf, "%c-%llu(%s/%llu/%d)", |
2819 | btrfsic_get_block_type(state, block), | 2727 | btrfsic_get_block_type(state, block), |
2820 | (unsigned long long)block->logical_bytenr, | 2728 | block->logical_bytenr, block->dev_state->name, |
2821 | block->dev_state->name, | 2729 | block->dev_bytenr, block->mirror_num); |
2822 | (unsigned long long)block->dev_bytenr, | ||
2823 | block->mirror_num); | ||
2824 | if (indent_level + indent_add > BTRFSIC_TREE_DUMP_MAX_INDENT_LEVEL) { | 2730 | if (indent_level + indent_add > BTRFSIC_TREE_DUMP_MAX_INDENT_LEVEL) { |
2825 | printk("[...]\n"); | 2731 | printk("[...]\n"); |
2826 | return; | 2732 | return; |
@@ -2953,10 +2859,8 @@ static struct btrfsic_block *btrfsic_block_lookup_or_add( | |||
2953 | "New %s%c-block @%llu (%s/%llu/%d)\n", | 2859 | "New %s%c-block @%llu (%s/%llu/%d)\n", |
2954 | additional_string, | 2860 | additional_string, |
2955 | btrfsic_get_block_type(state, block), | 2861 | btrfsic_get_block_type(state, block), |
2956 | (unsigned long long)block->logical_bytenr, | 2862 | block->logical_bytenr, dev_state->name, |
2957 | dev_state->name, | 2863 | block->dev_bytenr, mirror_num); |
2958 | (unsigned long long)block->dev_bytenr, | ||
2959 | mirror_num); | ||
2960 | list_add(&block->all_blocks_node, &state->all_blocks_list); | 2864 | list_add(&block->all_blocks_node, &state->all_blocks_list); |
2961 | btrfsic_block_hashtable_add(block, &state->block_hashtable); | 2865 | btrfsic_block_hashtable_add(block, &state->block_hashtable); |
2962 | if (NULL != was_created) | 2866 | if (NULL != was_created) |
@@ -2990,7 +2894,7 @@ static void btrfsic_cmp_log_and_dev_bytenr(struct btrfsic_state *state, | |||
2990 | printk(KERN_INFO "btrfsic:" | 2894 | printk(KERN_INFO "btrfsic:" |
2991 | " btrfsic_map_block(logical @%llu," | 2895 | " btrfsic_map_block(logical @%llu," |
2992 | " mirror %d) failed!\n", | 2896 | " mirror %d) failed!\n", |
2993 | (unsigned long long)bytenr, mirror_num); | 2897 | bytenr, mirror_num); |
2994 | continue; | 2898 | continue; |
2995 | } | 2899 | } |
2996 | 2900 | ||
@@ -3007,8 +2911,7 @@ static void btrfsic_cmp_log_and_dev_bytenr(struct btrfsic_state *state, | |||
3007 | printk(KERN_INFO "btrfs: attempt to write M-block which contains logical bytenr that doesn't map to dev+physical bytenr of submit_bio," | 2911 | printk(KERN_INFO "btrfs: attempt to write M-block which contains logical bytenr that doesn't map to dev+physical bytenr of submit_bio," |
3008 | " buffer->log_bytenr=%llu, submit_bio(bdev=%s," | 2912 | " buffer->log_bytenr=%llu, submit_bio(bdev=%s," |
3009 | " phys_bytenr=%llu)!\n", | 2913 | " phys_bytenr=%llu)!\n", |
3010 | (unsigned long long)bytenr, dev_state->name, | 2914 | bytenr, dev_state->name, dev_bytenr); |
3011 | (unsigned long long)dev_bytenr); | ||
3012 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { | 2915 | for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) { |
3013 | ret = btrfsic_map_block(state, bytenr, | 2916 | ret = btrfsic_map_block(state, bytenr, |
3014 | state->metablock_size, | 2917 | state->metablock_size, |
@@ -3018,10 +2921,8 @@ static void btrfsic_cmp_log_and_dev_bytenr(struct btrfsic_state *state, | |||
3018 | 2921 | ||
3019 | printk(KERN_INFO "Read logical bytenr @%llu maps to" | 2922 | printk(KERN_INFO "Read logical bytenr @%llu maps to" |
3020 | " (%s/%llu/%d)\n", | 2923 | " (%s/%llu/%d)\n", |
3021 | (unsigned long long)bytenr, | 2924 | bytenr, block_ctx.dev->name, |
3022 | block_ctx.dev->name, | 2925 | block_ctx.dev_bytenr, mirror_num); |
3023 | (unsigned long long)block_ctx.dev_bytenr, | ||
3024 | mirror_num); | ||
3025 | } | 2926 | } |
3026 | WARN_ON(1); | 2927 | WARN_ON(1); |
3027 | } | 2928 | } |
@@ -3060,8 +2961,7 @@ int btrfsic_submit_bh(int rw, struct buffer_head *bh) | |||
3060 | printk(KERN_INFO | 2961 | printk(KERN_INFO |
3061 | "submit_bh(rw=0x%x, blocknr=%lu (bytenr %llu)," | 2962 | "submit_bh(rw=0x%x, blocknr=%lu (bytenr %llu)," |
3062 | " size=%lu, data=%p, bdev=%p)\n", | 2963 | " size=%lu, data=%p, bdev=%p)\n", |
3063 | rw, (unsigned long)bh->b_blocknr, | 2964 | rw, (unsigned long)bh->b_blocknr, dev_bytenr, |
3064 | (unsigned long long)dev_bytenr, | ||
3065 | (unsigned long)bh->b_size, bh->b_data, | 2965 | (unsigned long)bh->b_size, bh->b_data, |
3066 | bh->b_bdev); | 2966 | bh->b_bdev); |
3067 | btrfsic_process_written_block(dev_state, dev_bytenr, | 2967 | btrfsic_process_written_block(dev_state, dev_bytenr, |
@@ -3130,8 +3030,7 @@ void btrfsic_submit_bio(int rw, struct bio *bio) | |||
3130 | "submit_bio(rw=0x%x, bi_vcnt=%u," | 3030 | "submit_bio(rw=0x%x, bi_vcnt=%u," |
3131 | " bi_sector=%lu (bytenr %llu), bi_bdev=%p)\n", | 3031 | " bi_sector=%lu (bytenr %llu), bi_bdev=%p)\n", |
3132 | rw, bio->bi_vcnt, (unsigned long)bio->bi_sector, | 3032 | rw, bio->bi_vcnt, (unsigned long)bio->bi_sector, |
3133 | (unsigned long long)dev_bytenr, | 3033 | dev_bytenr, bio->bi_bdev); |
3134 | bio->bi_bdev); | ||
3135 | 3034 | ||
3136 | mapped_datav = kmalloc(sizeof(*mapped_datav) * bio->bi_vcnt, | 3035 | mapped_datav = kmalloc(sizeof(*mapped_datav) * bio->bi_vcnt, |
3137 | GFP_NOFS); | 3036 | GFP_NOFS); |
@@ -3379,10 +3278,8 @@ void btrfsic_unmount(struct btrfs_root *root, | |||
3379 | " @%llu (%s/%llu/%d) on umount which is" | 3278 | " @%llu (%s/%llu/%d) on umount which is" |
3380 | " not yet iodone!\n", | 3279 | " not yet iodone!\n", |
3381 | btrfsic_get_block_type(state, b_all), | 3280 | btrfsic_get_block_type(state, b_all), |
3382 | (unsigned long long)b_all->logical_bytenr, | 3281 | b_all->logical_bytenr, b_all->dev_state->name, |
3383 | b_all->dev_state->name, | 3282 | b_all->dev_bytenr, b_all->mirror_num); |
3384 | (unsigned long long)b_all->dev_bytenr, | ||
3385 | b_all->mirror_num); | ||
3386 | } | 3283 | } |
3387 | 3284 | ||
3388 | mutex_unlock(&btrfsic_mutex); | 3285 | mutex_unlock(&btrfsic_mutex); |