Lines Matching full:slot
51 * Append generic "corrupt leaf/node root=%llu block=%llu slot=%d: " to @fmt.
56 static void generic_err(const struct extent_buffer *eb, int slot, in generic_err() argument
70 "corrupt %s: root=%llu block=%llu slot=%d, %pV", in generic_err()
72 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, &vaf); in generic_err()
82 static void file_extent_err(const struct extent_buffer *eb, int slot, in file_extent_err() argument
90 btrfs_item_key_to_cpu(eb, &key, slot); in file_extent_err()
98 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu file_offset=%llu, %pV", in file_extent_err()
100 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in file_extent_err()
109 #define CHECK_FE_ALIGNED(leaf, slot, fi, name, alignment) \ argument
113 file_extent_err((leaf), (slot), \
143 static void dir_item_err(const struct extent_buffer *eb, int slot, in dir_item_err() argument
151 btrfs_item_key_to_cpu(eb, &key, slot); in dir_item_err()
159 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu, %pV", in dir_item_err()
161 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dir_item_err()
176 struct btrfs_key *key, int slot, in check_prev_ino() argument
180 if (slot == 0) in check_prev_ino()
201 dir_item_err(leaf, slot, in check_prev_ino()
207 struct btrfs_key *key, int slot, in check_extent_data_item() argument
213 u32 item_size = btrfs_item_size(leaf, slot); in check_extent_data_item()
217 file_extent_err(leaf, slot, in check_extent_data_item()
229 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_extent_data_item()
232 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in check_extent_data_item()
239 file_extent_err(leaf, slot, in check_extent_data_item()
247 file_extent_err(leaf, slot, in check_extent_data_item()
260 file_extent_err(leaf, slot, in check_extent_data_item()
267 file_extent_err(leaf, slot, in check_extent_data_item()
275 file_extent_err(leaf, slot, in check_extent_data_item()
289 file_extent_err(leaf, slot, in check_extent_data_item()
300 file_extent_err(leaf, slot, in check_extent_data_item()
305 if (unlikely(CHECK_FE_ALIGNED(leaf, slot, fi, ram_bytes, sectorsize) || in check_extent_data_item()
306 CHECK_FE_ALIGNED(leaf, slot, fi, disk_bytenr, sectorsize) || in check_extent_data_item()
307 CHECK_FE_ALIGNED(leaf, slot, fi, disk_num_bytes, sectorsize) || in check_extent_data_item()
308 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) || in check_extent_data_item()
309 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize))) in check_extent_data_item()
315 file_extent_err(leaf, slot, in check_extent_data_item()
326 if (slot > 0 && in check_extent_data_item()
332 prev_fi = btrfs_item_ptr(leaf, slot - 1, in check_extent_data_item()
336 file_extent_err(leaf, slot - 1, in check_extent_data_item()
355 file_extent_err(leaf, slot, in check_extent_data_item()
365 int slot, struct btrfs_key *prev_key) in check_csum_item() argument
372 generic_err(leaf, slot, in check_csum_item()
378 generic_err(leaf, slot, in check_csum_item()
383 if (unlikely(!IS_ALIGNED(btrfs_item_size(leaf, slot), csumsize))) { in check_csum_item()
384 generic_err(leaf, slot, in check_csum_item()
386 btrfs_item_size(leaf, slot), csumsize); in check_csum_item()
389 if (slot > 0 && prev_key->type == BTRFS_EXTENT_CSUM_KEY) { in check_csum_item()
393 prev_item_size = btrfs_item_size(leaf, slot - 1); in check_csum_item()
397 generic_err(leaf, slot - 1, in check_csum_item()
407 #define inode_item_err(eb, slot, fmt, ...) \ argument
408 dir_item_err(eb, slot, fmt, __VA_ARGS__)
411 int slot) in check_inode_key() argument
416 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_inode_key()
432 generic_err(leaf, slot, in check_inode_key()
439 dir_item_err(leaf, slot, in check_inode_key()
450 inode_item_err(leaf, slot, in check_inode_key()
454 dir_item_err(leaf, slot, in check_inode_key()
463 int slot) in check_root_key() argument
468 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_root_key()
479 generic_err(leaf, slot, in check_root_key()
488 generic_err(leaf, slot, "invalid root id 0"); in check_root_key()
490 dir_item_err(leaf, slot, in check_root_key()
497 dir_item_err(leaf, slot, in check_root_key()
514 generic_err(leaf, slot, "invalid root id 0 for reloc tree"); in check_root_key()
522 int slot) in check_dir_item() argument
526 u32 item_size = btrfs_item_size(leaf, slot); in check_dir_item()
529 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_dir_item()
532 di = btrfs_item_ptr(leaf, slot, struct btrfs_dir_item); in check_dir_item()
545 dir_item_err(leaf, slot, in check_dir_item()
554 ret = check_root_key(leaf, &location_key, slot); in check_dir_item()
559 ret = check_inode_key(leaf, &location_key, slot); in check_dir_item()
563 dir_item_err(leaf, slot, in check_dir_item()
574 dir_item_err(leaf, slot, in check_dir_item()
582 dir_item_err(leaf, slot, in check_dir_item()
589 dir_item_err(leaf, slot, in check_dir_item()
602 dir_item_err(leaf, slot, in check_dir_item()
608 dir_item_err(leaf, slot, in check_dir_item()
616 dir_item_err(leaf, slot, in check_dir_item()
626 dir_item_err(leaf, slot, in check_dir_item()
644 dir_item_err(leaf, slot, in check_dir_item()
658 static void block_group_err(const struct extent_buffer *eb, int slot, in block_group_err() argument
666 btrfs_item_key_to_cpu(eb, &key, slot); in block_group_err()
674 "corrupt %s: root=%llu block=%llu slot=%d bg_start=%llu bg_len=%llu, %pV", in block_group_err()
676 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in block_group_err()
682 struct btrfs_key *key, int slot) in check_block_group_item() argument
686 u32 item_size = btrfs_item_size(leaf, slot); in check_block_group_item()
696 block_group_err(leaf, slot, in check_block_group_item()
702 block_group_err(leaf, slot, in check_block_group_item()
708 read_extent_buffer(leaf, &bgi, btrfs_item_ptr_offset(leaf, slot), in check_block_group_item()
720 block_group_err(leaf, slot, in check_block_group_item()
727 block_group_err(leaf, slot, in check_block_group_item()
735 block_group_err(leaf, slot, in check_block_group_item()
743 block_group_err(leaf, slot, in check_block_group_item()
756 block_group_err(leaf, slot, in check_block_group_item()
778 int slot = -1; in chunk_err() local
782 * Get the slot number by iterating through all slots, this in chunk_err()
788 slot = i; in chunk_err()
803 "corrupt leaf: root=%llu block=%llu slot=%d chunk_start=%llu, %pV", in chunk_err()
804 BTRFS_CHUNK_TREE_OBJECTID, leaf->start, slot, in chunk_err()
994 struct btrfs_key *key, int slot) in check_leaf_chunk_item() argument
999 if (unlikely(btrfs_item_size(leaf, slot) < sizeof(struct btrfs_chunk))) { in check_leaf_chunk_item()
1002 btrfs_item_size(leaf, slot), in check_leaf_chunk_item()
1014 btrfs_item_size(leaf, slot))) { in check_leaf_chunk_item()
1017 btrfs_item_size(leaf, slot), in check_leaf_chunk_item()
1028 static void dev_item_err(const struct extent_buffer *eb, int slot, in dev_item_err() argument
1035 btrfs_item_key_to_cpu(eb, &key, slot); in dev_item_err()
1043 "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", in dev_item_err()
1045 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dev_item_err()
1051 struct btrfs_key *key, int slot) in check_dev_item() argument
1054 const u32 item_size = btrfs_item_size(leaf, slot); in check_dev_item()
1057 dev_item_err(leaf, slot, in check_dev_item()
1064 dev_item_err(leaf, slot, "invalid item size: has %u expect %zu", in check_dev_item()
1069 ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); in check_dev_item()
1071 dev_item_err(leaf, slot, in check_dev_item()
1084 dev_item_err(leaf, slot, in check_dev_item()
1098 struct btrfs_key *key, int slot) in check_inode_item() argument
1104 const u32 item_size = btrfs_item_size(leaf, slot); in check_inode_item()
1110 ret = check_inode_key(leaf, key, slot); in check_inode_item()
1115 generic_err(leaf, slot, "invalid item size: has %u expect %zu", in check_inode_item()
1120 iitem = btrfs_item_ptr(leaf, slot, struct btrfs_inode_item); in check_inode_item()
1124 inode_item_err(leaf, slot, in check_inode_item()
1132 inode_item_err(leaf, slot, in check_inode_item()
1145 inode_item_err(leaf, slot, in check_inode_item()
1158 inode_item_err(leaf, slot, in check_inode_item()
1165 inode_item_err(leaf, slot, in check_inode_item()
1172 inode_item_err(leaf, slot, in check_inode_item()
1178 inode_item_err(leaf, slot, in check_inode_item()
1187 int slot) in check_root_item() argument
1195 ret = check_root_key(leaf, key, slot); in check_root_item()
1199 if (unlikely(btrfs_item_size(leaf, slot) != sizeof(ri) && in check_root_item()
1200 btrfs_item_size(leaf, slot) != in check_root_item()
1202 generic_err(leaf, slot, in check_root_item()
1204 btrfs_item_size(leaf, slot), sizeof(ri), in check_root_item()
1214 read_extent_buffer(leaf, &ri, btrfs_item_ptr_offset(leaf, slot), in check_root_item()
1215 btrfs_item_size(leaf, slot)); in check_root_item()
1220 generic_err(leaf, slot, in check_root_item()
1228 generic_err(leaf, slot, in check_root_item()
1236 generic_err(leaf, slot, in check_root_item()
1245 generic_err(leaf, slot, in check_root_item()
1251 generic_err(leaf, slot, in check_root_item()
1257 generic_err(leaf, slot, in check_root_item()
1265 generic_err(leaf, slot, in check_root_item()
1275 static void extent_err(const struct extent_buffer *eb, int slot, in extent_err() argument
1284 btrfs_item_key_to_cpu(eb, &key, slot); in extent_err()
1299 "corrupt %s: block=%llu slot=%d extent bytenr=%llu len=%llu %pV", in extent_err()
1301 eb->start, slot, bytenr, len, &vaf); in extent_err()
1319 struct btrfs_key *key, int slot, in check_extent_item() argument
1327 const u32 item_size = btrfs_item_size(leaf, slot); in check_extent_item()
1337 generic_err(leaf, slot, in check_extent_item()
1343 generic_err(leaf, slot, in check_extent_item()
1352 extent_err(leaf, slot, in check_extent_item()
1390 extent_err(leaf, slot, in check_extent_item()
1396 end = item_size + btrfs_item_ptr_offset(leaf, slot); in check_extent_item()
1399 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in check_extent_item()
1405 extent_err(leaf, slot, in check_extent_item()
1413 extent_err(leaf, slot, in check_extent_item()
1423 extent_err(leaf, slot, in check_extent_item()
1430 extent_err(leaf, slot, in check_extent_item()
1436 extent_err(leaf, slot, in check_extent_item()
1442 extent_err(leaf, slot, in check_extent_item()
1455 extent_err(leaf, slot, in check_extent_item()
1477 extent_err(leaf, slot, in check_extent_item()
1487 extent_err(leaf, slot, in check_extent_item()
1502 extent_err(leaf, slot, in check_extent_item()
1523 extent_err(leaf, slot, in check_extent_item()
1530 extent_err(leaf, slot, in check_extent_item()
1537 extent_err(leaf, slot, in check_extent_item()
1543 extent_err(leaf, slot, in check_extent_item()
1554 extent_err(leaf, slot, in check_extent_item()
1560 extent_err(leaf, slot, in check_extent_item()
1570 extent_err(leaf, slot, "unknown inline ref type: %u", in check_extent_item()
1575 extent_err(leaf, slot, in check_extent_item()
1584 extent_err(leaf, slot, in check_extent_item()
1596 extent_err(leaf, slot, in check_extent_item()
1603 extent_err(leaf, slot, in check_extent_item()
1619 extent_err(leaf, slot, in check_extent_item()
1632 struct btrfs_key *key, int slot) in check_simple_keyed_refs() argument
1639 sref = btrfs_item_ptr(leaf, slot, struct btrfs_shared_data_ref); in check_simple_keyed_refs()
1641 extent_err(leaf, slot, in check_simple_keyed_refs()
1649 if (unlikely(btrfs_item_size(leaf, slot) != expect_item_size)) { in check_simple_keyed_refs()
1650 generic_err(leaf, slot, in check_simple_keyed_refs()
1652 btrfs_item_size(leaf, slot), in check_simple_keyed_refs()
1657 generic_err(leaf, slot, in check_simple_keyed_refs()
1664 extent_err(leaf, slot, in check_simple_keyed_refs()
1673 struct btrfs_key *key, int slot) in check_extent_data_ref() argument
1676 unsigned long ptr = btrfs_item_ptr_offset(leaf, slot); in check_extent_data_ref()
1677 const unsigned long end = ptr + btrfs_item_size(leaf, slot); in check_extent_data_ref()
1679 if (unlikely(btrfs_item_size(leaf, slot) % sizeof(*dref) != 0)) { in check_extent_data_ref()
1680 generic_err(leaf, slot, in check_extent_data_ref()
1682 btrfs_item_size(leaf, slot), in check_extent_data_ref()
1687 generic_err(leaf, slot, in check_extent_data_ref()
1706 extent_err(leaf, slot, in check_extent_data_ref()
1713 extent_err(leaf, slot, in check_extent_data_ref()
1719 extent_err(leaf, slot, in check_extent_data_ref()
1725 extent_err(leaf, slot, in check_extent_data_ref()
1733 #define inode_ref_err(eb, slot, fmt, args...) \ argument
1734 inode_item_err(eb, slot, fmt, ##args)
1737 int slot) in check_inode_ref() argument
1743 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_inode_ref()
1746 if (unlikely(btrfs_item_size(leaf, slot) <= sizeof(*iref))) { in check_inode_ref()
1747 inode_ref_err(leaf, slot, in check_inode_ref()
1749 btrfs_item_size(leaf, slot), in check_inode_ref()
1754 ptr = btrfs_item_ptr_offset(leaf, slot); in check_inode_ref()
1755 end = ptr + btrfs_item_size(leaf, slot); in check_inode_ref()
1760 inode_ref_err(leaf, slot, in check_inode_ref()
1769 inode_ref_err(leaf, slot, in check_inode_ref()
1786 const struct btrfs_key *key, int slot) in check_raid_stripe_extent() argument
1789 generic_err(leaf, slot, in check_raid_stripe_extent()
1796 generic_err(leaf, slot, in check_raid_stripe_extent()
1806 int slot, in check_dev_extent_item() argument
1812 de = btrfs_item_ptr(leaf, slot, struct btrfs_dev_extent); in check_dev_extent_item()
1816 generic_err(leaf, slot, in check_dev_extent_item()
1824 generic_err(leaf, slot, in check_dev_extent_item()
1832 generic_err(leaf, slot, in check_dev_extent_item()
1839 generic_err(leaf, slot, in check_dev_extent_item()
1847 generic_err(leaf, slot, in check_dev_extent_item()
1853 if (slot && prev_key->objectid == key->objectid && in check_dev_extent_item()
1858 prev_de = btrfs_item_ptr(leaf, slot - 1, struct btrfs_dev_extent); in check_dev_extent_item()
1861 generic_err(leaf, slot, in check_dev_extent_item()
1875 int slot, in check_leaf_item() argument
1883 ret = check_extent_data_item(leaf, key, slot, prev_key); in check_leaf_item()
1886 ret = check_csum_item(leaf, key, slot, prev_key); in check_leaf_item()
1891 ret = check_dir_item(leaf, key, prev_key, slot); in check_leaf_item()
1894 ret = check_inode_ref(leaf, key, prev_key, slot); in check_leaf_item()
1897 ret = check_block_group_item(leaf, key, slot); in check_leaf_item()
1900 chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk); in check_leaf_item()
1901 ret = check_leaf_chunk_item(leaf, chunk, key, slot); in check_leaf_item()
1904 ret = check_dev_item(leaf, key, slot); in check_leaf_item()
1907 ret = check_dev_extent_item(leaf, key, slot, prev_key); in check_leaf_item()
1910 ret = check_inode_item(leaf, key, slot); in check_leaf_item()
1913 ret = check_root_item(leaf, key, slot); in check_leaf_item()
1917 ret = check_extent_item(leaf, key, slot, prev_key); in check_leaf_item()
1922 ret = check_simple_keyed_refs(leaf, key, slot); in check_leaf_item()
1925 ret = check_extent_data_ref(leaf, key, slot); in check_leaf_item()
1928 ret = check_raid_stripe_extent(leaf, key, slot); in check_leaf_item()
1944 int slot; in __btrfs_check_leaf() local
2016 for (slot = 0; slot < nritems; slot++) { in __btrfs_check_leaf()
2021 btrfs_item_key_to_cpu(leaf, &key, slot); in __btrfs_check_leaf()
2025 generic_err(leaf, slot, in __btrfs_check_leaf()
2033 item_data_end = (u64)btrfs_item_offset(leaf, slot) + in __btrfs_check_leaf()
2034 btrfs_item_size(leaf, slot); in __btrfs_check_leaf()
2040 if (slot == 0) in __btrfs_check_leaf()
2044 slot - 1); in __btrfs_check_leaf()
2046 generic_err(leaf, slot, in __btrfs_check_leaf()
2058 generic_err(leaf, slot, in __btrfs_check_leaf()
2059 "slot end outside of leaf, have %llu expect range [0, %u]", in __btrfs_check_leaf()
2065 if (unlikely(btrfs_item_ptr_offset(leaf, slot) < in __btrfs_check_leaf()
2066 btrfs_item_nr_offset(leaf, slot) + sizeof(struct btrfs_item))) { in __btrfs_check_leaf()
2067 generic_err(leaf, slot, in __btrfs_check_leaf()
2068 "slot overlaps with its data, item end %lu data start %lu", in __btrfs_check_leaf()
2069 btrfs_item_nr_offset(leaf, slot) + in __btrfs_check_leaf()
2071 btrfs_item_ptr_offset(leaf, slot)); in __btrfs_check_leaf()
2076 ret = check_leaf_item(leaf, &key, slot, &prev_key); in __btrfs_check_leaf()
2104 int slot; in __btrfs_check_node() local
2128 for (slot = 0; slot < nr - 1; slot++) { in __btrfs_check_node()
2129 bytenr = btrfs_node_blockptr(node, slot); in __btrfs_check_node()
2130 btrfs_node_key_to_cpu(node, &key, slot); in __btrfs_check_node()
2131 btrfs_node_key_to_cpu(node, &next_key, slot + 1); in __btrfs_check_node()
2134 generic_err(node, slot, in __btrfs_check_node()
2139 generic_err(node, slot, in __btrfs_check_node()
2146 generic_err(node, slot, in __btrfs_check_node()