Lines Matching full:slot
45 * Append generic "corrupt leaf/node root=%llu block=%llu slot=%d: " to @fmt.
50 static void generic_err(const struct extent_buffer *eb, int slot, in generic_err() argument
63 "corrupt %s: root=%llu block=%llu slot=%d, %pV", in generic_err()
65 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, &vaf); in generic_err()
75 static void file_extent_err(const struct extent_buffer *eb, int slot, in file_extent_err() argument
83 btrfs_item_key_to_cpu(eb, &key, slot); in file_extent_err()
90 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu file_offset=%llu, %pV", in file_extent_err()
92 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in file_extent_err()
101 #define CHECK_FE_ALIGNED(leaf, slot, fi, name, alignment) \ argument
104 file_extent_err((leaf), (slot), \
134 static void dir_item_err(const struct extent_buffer *eb, int slot, in dir_item_err() argument
142 btrfs_item_key_to_cpu(eb, &key, slot); in dir_item_err()
149 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu, %pV", in dir_item_err()
151 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dir_item_err()
166 struct btrfs_key *key, int slot, in check_prev_ino() argument
170 if (slot == 0) in check_prev_ino()
191 dir_item_err(leaf, slot, in check_prev_ino()
197 struct btrfs_key *key, int slot, in check_extent_data_item() argument
203 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_extent_data_item()
207 file_extent_err(leaf, slot, in check_extent_data_item()
219 if (!check_prev_ino(leaf, key, slot, prev_key)) in check_extent_data_item()
222 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in check_extent_data_item()
229 file_extent_err(leaf, slot, in check_extent_data_item()
236 file_extent_err(leaf, slot, in check_extent_data_item()
248 file_extent_err(leaf, slot, in check_extent_data_item()
255 file_extent_err(leaf, slot, in check_extent_data_item()
263 file_extent_err(leaf, slot, in check_extent_data_item()
277 file_extent_err(leaf, slot, in check_extent_data_item()
288 file_extent_err(leaf, slot, in check_extent_data_item()
293 if (CHECK_FE_ALIGNED(leaf, slot, fi, ram_bytes, sectorsize) || in check_extent_data_item()
294 CHECK_FE_ALIGNED(leaf, slot, fi, disk_bytenr, sectorsize) || in check_extent_data_item()
295 CHECK_FE_ALIGNED(leaf, slot, fi, disk_num_bytes, sectorsize) || in check_extent_data_item()
296 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) || in check_extent_data_item()
297 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize)) in check_extent_data_item()
303 file_extent_err(leaf, slot, in check_extent_data_item()
314 if (slot > 0 && in check_extent_data_item()
320 prev_fi = btrfs_item_ptr(leaf, slot - 1, in check_extent_data_item()
324 file_extent_err(leaf, slot - 1, in check_extent_data_item()
335 int slot, struct btrfs_key *prev_key) in check_csum_item() argument
342 generic_err(leaf, slot, in check_csum_item()
348 generic_err(leaf, slot, in check_csum_item()
353 if (!IS_ALIGNED(btrfs_item_size_nr(leaf, slot), csumsize)) { in check_csum_item()
354 generic_err(leaf, slot, in check_csum_item()
356 btrfs_item_size_nr(leaf, slot), csumsize); in check_csum_item()
359 if (slot > 0 && prev_key->type == BTRFS_EXTENT_CSUM_KEY) { in check_csum_item()
363 prev_item_size = btrfs_item_size_nr(leaf, slot - 1); in check_csum_item()
367 generic_err(leaf, slot - 1, in check_csum_item()
377 #define inode_item_err(eb, slot, fmt, ...) \ argument
378 dir_item_err(eb, slot, fmt, __VA_ARGS__)
381 int slot) in check_inode_key() argument
386 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_inode_key()
401 generic_err(leaf, slot, in check_inode_key()
408 dir_item_err(leaf, slot, in check_inode_key()
419 inode_item_err(leaf, slot, in check_inode_key()
423 dir_item_err(leaf, slot, in check_inode_key()
432 int slot) in check_root_key() argument
437 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_root_key()
443 generic_err(leaf, slot, "invalid root id 0"); in check_root_key()
445 dir_item_err(leaf, slot, in check_root_key()
452 dir_item_err(leaf, slot, in check_root_key()
468 generic_err(leaf, slot, "invalid root id 0 for reloc tree"); in check_root_key()
476 int slot) in check_dir_item() argument
480 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_dir_item()
483 if (!check_prev_ino(leaf, key, slot, prev_key)) in check_dir_item()
485 di = btrfs_item_ptr(leaf, slot, struct btrfs_dir_item); in check_dir_item()
498 dir_item_err(leaf, slot, in check_dir_item()
507 ret = check_root_key(leaf, &location_key, slot); in check_dir_item()
512 ret = check_inode_key(leaf, &location_key, slot); in check_dir_item()
516 dir_item_err(leaf, slot, in check_dir_item()
526 dir_item_err(leaf, slot, in check_dir_item()
534 dir_item_err(leaf, slot, in check_dir_item()
541 dir_item_err(leaf, slot, in check_dir_item()
554 dir_item_err(leaf, slot, in check_dir_item()
560 dir_item_err(leaf, slot, in check_dir_item()
568 dir_item_err(leaf, slot, in check_dir_item()
578 dir_item_err(leaf, slot, in check_dir_item()
596 dir_item_err(leaf, slot, in check_dir_item()
610 static void block_group_err(const struct extent_buffer *eb, int slot, in block_group_err() argument
618 btrfs_item_key_to_cpu(eb, &key, slot); in block_group_err()
625 "corrupt %s: root=%llu block=%llu slot=%d bg_start=%llu bg_len=%llu, %pV", in block_group_err()
627 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in block_group_err()
633 struct btrfs_key *key, int slot) in check_block_group_item() argument
636 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_block_group_item()
645 block_group_err(leaf, slot, in check_block_group_item()
651 block_group_err(leaf, slot, in check_block_group_item()
657 read_extent_buffer(leaf, &bgi, btrfs_item_ptr_offset(leaf, slot), in check_block_group_item()
661 block_group_err(leaf, slot, in check_block_group_item()
669 block_group_err(leaf, slot, in check_block_group_item()
677 block_group_err(leaf, slot, in check_block_group_item()
690 block_group_err(leaf, slot, in check_block_group_item()
712 int slot = -1; in chunk_err() local
719 * Get the slot number by iterating through all slots, this in chunk_err()
725 slot = i; in chunk_err()
740 "corrupt leaf: root=%llu block=%llu slot=%d chunk_start=%llu, %pV", in chunk_err()
741 BTRFS_CHUNK_TREE_OBJECTID, leaf->start, slot, in chunk_err()
886 struct btrfs_key *key, int slot) in check_leaf_chunk_item() argument
890 if (btrfs_item_size_nr(leaf, slot) < sizeof(struct btrfs_chunk)) { in check_leaf_chunk_item()
893 btrfs_item_size_nr(leaf, slot), in check_leaf_chunk_item()
905 btrfs_item_size_nr(leaf, slot)) { in check_leaf_chunk_item()
908 btrfs_item_size_nr(leaf, slot), in check_leaf_chunk_item()
918 static void dev_item_err(const struct extent_buffer *eb, int slot, in dev_item_err() argument
925 btrfs_item_key_to_cpu(eb, &key, slot); in dev_item_err()
932 "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", in dev_item_err()
934 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dev_item_err()
940 struct btrfs_key *key, int slot) in check_dev_item() argument
945 dev_item_err(leaf, slot, in check_dev_item()
950 ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); in check_dev_item()
952 dev_item_err(leaf, slot, in check_dev_item()
965 dev_item_err(leaf, slot, in check_dev_item()
979 struct btrfs_key *key, int slot) in check_inode_item() argument
988 ret = check_inode_key(leaf, key, slot); in check_inode_item()
992 iitem = btrfs_item_ptr(leaf, slot, struct btrfs_inode_item); in check_inode_item()
996 inode_item_err(leaf, slot, in check_inode_item()
1004 inode_item_err(leaf, slot, in check_inode_item()
1017 inode_item_err(leaf, slot, in check_inode_item()
1030 inode_item_err(leaf, slot, in check_inode_item()
1037 inode_item_err(leaf, slot, in check_inode_item()
1043 inode_item_err(leaf, slot, in check_inode_item()
1053 int slot) in check_root_item() argument
1061 ret = check_root_key(leaf, key, slot); in check_root_item()
1065 if (btrfs_item_size_nr(leaf, slot) != sizeof(ri) && in check_root_item()
1066 btrfs_item_size_nr(leaf, slot) != btrfs_legacy_root_item_size()) { in check_root_item()
1067 generic_err(leaf, slot, in check_root_item()
1069 btrfs_item_size_nr(leaf, slot), sizeof(ri), in check_root_item()
1079 read_extent_buffer(leaf, &ri, btrfs_item_ptr_offset(leaf, slot), in check_root_item()
1080 btrfs_item_size_nr(leaf, slot)); in check_root_item()
1085 generic_err(leaf, slot, in check_root_item()
1093 generic_err(leaf, slot, in check_root_item()
1101 generic_err(leaf, slot, in check_root_item()
1110 generic_err(leaf, slot, in check_root_item()
1116 generic_err(leaf, slot, in check_root_item()
1122 generic_err(leaf, slot, in check_root_item()
1130 generic_err(leaf, slot, in check_root_item()
1140 static void extent_err(const struct extent_buffer *eb, int slot, in extent_err() argument
1149 btrfs_item_key_to_cpu(eb, &key, slot); in extent_err()
1163 "corrupt %s: block=%llu slot=%d extent bytenr=%llu len=%llu %pV", in extent_err()
1165 eb->start, slot, bytenr, len, &vaf); in extent_err()
1170 struct btrfs_key *key, int slot) in check_extent_item() argument
1177 const u32 item_size = btrfs_item_size_nr(leaf, slot); in check_extent_item()
1185 generic_err(leaf, slot, in check_extent_item()
1191 generic_err(leaf, slot, in check_extent_item()
1200 extent_err(leaf, slot, in check_extent_item()
1226 extent_err(leaf, slot, in check_extent_item()
1232 end = item_size + btrfs_item_ptr_offset(leaf, slot); in check_extent_item()
1235 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in check_extent_item()
1240 extent_err(leaf, slot, in check_extent_item()
1248 extent_err(leaf, slot, in check_extent_item()
1258 extent_err(leaf, slot, in check_extent_item()
1265 extent_err(leaf, slot, in check_extent_item()
1271 extent_err(leaf, slot, in check_extent_item()
1285 extent_err(leaf, slot, in check_extent_item()
1304 extent_err(leaf, slot, in check_extent_item()
1313 extent_err(leaf, slot, in check_extent_item()
1327 extent_err(leaf, slot, in check_extent_item()
1342 extent_err(leaf, slot, in check_extent_item()
1353 extent_err(leaf, slot, in check_extent_item()
1361 extent_err(leaf, slot, "unknown inline ref type: %u", in check_extent_item()
1369 extent_err(leaf, slot, in check_extent_item()
1376 extent_err(leaf, slot, in check_extent_item()
1385 struct btrfs_key *key, int slot) in check_simple_keyed_refs() argument
1392 if (btrfs_item_size_nr(leaf, slot) != expect_item_size) { in check_simple_keyed_refs()
1393 generic_err(leaf, slot, in check_simple_keyed_refs()
1395 btrfs_item_size_nr(leaf, slot), in check_simple_keyed_refs()
1400 generic_err(leaf, slot, in check_simple_keyed_refs()
1407 extent_err(leaf, slot, in check_simple_keyed_refs()
1416 struct btrfs_key *key, int slot) in check_extent_data_ref() argument
1419 unsigned long ptr = btrfs_item_ptr_offset(leaf, slot); in check_extent_data_ref()
1420 const unsigned long end = ptr + btrfs_item_size_nr(leaf, slot); in check_extent_data_ref()
1422 if (btrfs_item_size_nr(leaf, slot) % sizeof(*dref) != 0) { in check_extent_data_ref()
1423 generic_err(leaf, slot, in check_extent_data_ref()
1425 btrfs_item_size_nr(leaf, slot), in check_extent_data_ref()
1430 generic_err(leaf, slot, in check_extent_data_ref()
1447 extent_err(leaf, slot, in check_extent_data_ref()
1453 extent_err(leaf, slot, in check_extent_data_ref()
1462 #define inode_ref_err(eb, slot, fmt, args...) \ argument
1463 inode_item_err(eb, slot, fmt, ##args)
1466 int slot) in check_inode_ref() argument
1472 if (!check_prev_ino(leaf, key, slot, prev_key)) in check_inode_ref()
1475 if (btrfs_item_size_nr(leaf, slot) <= sizeof(*iref)) { in check_inode_ref()
1476 inode_ref_err(leaf, slot, in check_inode_ref()
1478 btrfs_item_size_nr(leaf, slot), in check_inode_ref()
1483 ptr = btrfs_item_ptr_offset(leaf, slot); in check_inode_ref()
1484 end = ptr + btrfs_item_size_nr(leaf, slot); in check_inode_ref()
1489 inode_ref_err(leaf, slot, in check_inode_ref()
1498 inode_ref_err(leaf, slot, in check_inode_ref()
1518 struct btrfs_key *key, int slot, in check_leaf_item() argument
1526 ret = check_extent_data_item(leaf, key, slot, prev_key); in check_leaf_item()
1529 ret = check_csum_item(leaf, key, slot, prev_key); in check_leaf_item()
1534 ret = check_dir_item(leaf, key, prev_key, slot); in check_leaf_item()
1537 ret = check_inode_ref(leaf, key, prev_key, slot); in check_leaf_item()
1540 ret = check_block_group_item(leaf, key, slot); in check_leaf_item()
1543 chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk); in check_leaf_item()
1544 ret = check_leaf_chunk_item(leaf, chunk, key, slot); in check_leaf_item()
1547 ret = check_dev_item(leaf, key, slot); in check_leaf_item()
1550 ret = check_inode_item(leaf, key, slot); in check_leaf_item()
1553 ret = check_root_item(leaf, key, slot); in check_leaf_item()
1557 ret = check_extent_item(leaf, key, slot); in check_leaf_item()
1562 ret = check_simple_keyed_refs(leaf, key, slot); in check_leaf_item()
1565 ret = check_extent_data_ref(leaf, key, slot); in check_leaf_item()
1578 int slot; in check_leaf() local
1633 for (slot = 0; slot < nritems; slot++) { in check_leaf()
1637 btrfs_item_key_to_cpu(leaf, &key, slot); in check_leaf()
1641 generic_err(leaf, slot, in check_leaf()
1654 if (slot == 0) in check_leaf()
1658 slot - 1); in check_leaf()
1659 if (btrfs_item_end_nr(leaf, slot) != item_end_expected) { in check_leaf()
1660 generic_err(leaf, slot, in check_leaf()
1662 btrfs_item_end_nr(leaf, slot), in check_leaf()
1672 if (btrfs_item_end_nr(leaf, slot) > in check_leaf()
1674 generic_err(leaf, slot, in check_leaf()
1675 "slot end outside of leaf, have %u expect range [0, %u]", in check_leaf()
1676 btrfs_item_end_nr(leaf, slot), in check_leaf()
1682 if (btrfs_item_nr_offset(slot) + sizeof(struct btrfs_item) > in check_leaf()
1683 btrfs_item_ptr_offset(leaf, slot)) { in check_leaf()
1684 generic_err(leaf, slot, in check_leaf()
1685 "slot overlaps with its data, item end %lu data start %lu", in check_leaf()
1686 btrfs_item_nr_offset(slot) + in check_leaf()
1688 btrfs_item_ptr_offset(leaf, slot)); in check_leaf()
1697 ret = check_leaf_item(leaf, &key, slot, &prev_key); in check_leaf()
1726 int slot; in btrfs_check_node() local
1746 for (slot = 0; slot < nr - 1; slot++) { in btrfs_check_node()
1747 bytenr = btrfs_node_blockptr(node, slot); in btrfs_check_node()
1748 btrfs_node_key_to_cpu(node, &key, slot); in btrfs_check_node()
1749 btrfs_node_key_to_cpu(node, &next_key, slot + 1); in btrfs_check_node()
1752 generic_err(node, slot, in btrfs_check_node()
1758 generic_err(node, slot, in btrfs_check_node()
1766 generic_err(node, slot, in btrfs_check_node()