Lines Matching full:slot

46  * Append generic "corrupt leaf/node root=%llu block=%llu slot=%d: " to @fmt.
51 static void generic_err(const struct extent_buffer *eb, int slot, in generic_err() argument
64 "corrupt %s: root=%llu block=%llu slot=%d, %pV", in generic_err()
66 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, &vaf); in generic_err()
76 static void file_extent_err(const struct extent_buffer *eb, int slot, in file_extent_err() argument
84 btrfs_item_key_to_cpu(eb, &key, slot); in file_extent_err()
91 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu file_offset=%llu, %pV", in file_extent_err()
93 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in file_extent_err()
102 #define CHECK_FE_ALIGNED(leaf, slot, fi, name, alignment) \ argument
106 file_extent_err((leaf), (slot), \
136 static void dir_item_err(const struct extent_buffer *eb, int slot, in dir_item_err() argument
144 btrfs_item_key_to_cpu(eb, &key, slot); in dir_item_err()
151 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu, %pV", in dir_item_err()
153 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dir_item_err()
168 struct btrfs_key *key, int slot, in check_prev_ino() argument
172 if (slot == 0) in check_prev_ino()
193 dir_item_err(leaf, slot, in check_prev_ino()
199 struct btrfs_key *key, int slot, in check_extent_data_item() argument
205 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_extent_data_item()
209 file_extent_err(leaf, slot, in check_extent_data_item()
221 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_extent_data_item()
224 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in check_extent_data_item()
231 file_extent_err(leaf, slot, in check_extent_data_item()
239 file_extent_err(leaf, slot, in check_extent_data_item()
252 file_extent_err(leaf, slot, in check_extent_data_item()
259 file_extent_err(leaf, slot, in check_extent_data_item()
267 file_extent_err(leaf, slot, in check_extent_data_item()
281 file_extent_err(leaf, slot, in check_extent_data_item()
292 file_extent_err(leaf, slot, in check_extent_data_item()
297 if (unlikely(CHECK_FE_ALIGNED(leaf, slot, fi, ram_bytes, sectorsize) || in check_extent_data_item()
298 CHECK_FE_ALIGNED(leaf, slot, fi, disk_bytenr, sectorsize) || in check_extent_data_item()
299 CHECK_FE_ALIGNED(leaf, slot, fi, disk_num_bytes, sectorsize) || in check_extent_data_item()
300 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) || in check_extent_data_item()
301 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize))) in check_extent_data_item()
307 file_extent_err(leaf, slot, in check_extent_data_item()
318 if (slot > 0 && in check_extent_data_item()
324 prev_fi = btrfs_item_ptr(leaf, slot - 1, in check_extent_data_item()
328 file_extent_err(leaf, slot - 1, in check_extent_data_item()
339 int slot, struct btrfs_key *prev_key) in check_csum_item() argument
346 generic_err(leaf, slot, in check_csum_item()
352 generic_err(leaf, slot, in check_csum_item()
357 if (unlikely(!IS_ALIGNED(btrfs_item_size_nr(leaf, slot), csumsize))) { in check_csum_item()
358 generic_err(leaf, slot, in check_csum_item()
360 btrfs_item_size_nr(leaf, slot), csumsize); in check_csum_item()
363 if (slot > 0 && prev_key->type == BTRFS_EXTENT_CSUM_KEY) { in check_csum_item()
367 prev_item_size = btrfs_item_size_nr(leaf, slot - 1); in check_csum_item()
371 generic_err(leaf, slot - 1, in check_csum_item()
381 #define inode_item_err(eb, slot, fmt, ...) \ argument
382 dir_item_err(eb, slot, fmt, __VA_ARGS__)
385 int slot) in check_inode_key() argument
390 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_inode_key()
406 generic_err(leaf, slot, in check_inode_key()
413 dir_item_err(leaf, slot, in check_inode_key()
424 inode_item_err(leaf, slot, in check_inode_key()
428 dir_item_err(leaf, slot, in check_inode_key()
437 int slot) in check_root_key() argument
442 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_root_key()
448 generic_err(leaf, slot, "invalid root id 0"); in check_root_key()
450 dir_item_err(leaf, slot, in check_root_key()
457 dir_item_err(leaf, slot, in check_root_key()
474 generic_err(leaf, slot, "invalid root id 0 for reloc tree"); in check_root_key()
482 int slot) in check_dir_item() argument
486 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_dir_item()
489 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_dir_item()
492 di = btrfs_item_ptr(leaf, slot, struct btrfs_dir_item); in check_dir_item()
505 dir_item_err(leaf, slot, in check_dir_item()
514 ret = check_root_key(leaf, &location_key, slot); in check_dir_item()
519 ret = check_inode_key(leaf, &location_key, slot); in check_dir_item()
523 dir_item_err(leaf, slot, in check_dir_item()
533 dir_item_err(leaf, slot, in check_dir_item()
541 dir_item_err(leaf, slot, in check_dir_item()
548 dir_item_err(leaf, slot, in check_dir_item()
561 dir_item_err(leaf, slot, in check_dir_item()
567 dir_item_err(leaf, slot, in check_dir_item()
575 dir_item_err(leaf, slot, in check_dir_item()
585 dir_item_err(leaf, slot, in check_dir_item()
603 dir_item_err(leaf, slot, in check_dir_item()
617 static void block_group_err(const struct extent_buffer *eb, int slot, in block_group_err() argument
625 btrfs_item_key_to_cpu(eb, &key, slot); in block_group_err()
632 "corrupt %s: root=%llu block=%llu slot=%d bg_start=%llu bg_len=%llu, %pV", in block_group_err()
634 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in block_group_err()
640 struct btrfs_key *key, int slot) in check_block_group_item() argument
643 u32 item_size = btrfs_item_size_nr(leaf, slot); in check_block_group_item()
652 block_group_err(leaf, slot, in check_block_group_item()
658 block_group_err(leaf, slot, in check_block_group_item()
664 read_extent_buffer(leaf, &bgi, btrfs_item_ptr_offset(leaf, slot), in check_block_group_item()
668 block_group_err(leaf, slot, in check_block_group_item()
676 block_group_err(leaf, slot, in check_block_group_item()
684 block_group_err(leaf, slot, in check_block_group_item()
697 block_group_err(leaf, slot, in check_block_group_item()
719 int slot = -1; in chunk_err() local
726 * Get the slot number by iterating through all slots, this in chunk_err()
732 slot = i; in chunk_err()
747 "corrupt leaf: root=%llu block=%llu slot=%d chunk_start=%llu, %pV", in chunk_err()
748 BTRFS_CHUNK_TREE_OBJECTID, leaf->start, slot, in chunk_err()
911 struct btrfs_key *key, int slot) in check_leaf_chunk_item() argument
915 if (unlikely(btrfs_item_size_nr(leaf, slot) < sizeof(struct btrfs_chunk))) { in check_leaf_chunk_item()
918 btrfs_item_size_nr(leaf, slot), in check_leaf_chunk_item()
930 btrfs_item_size_nr(leaf, slot))) { in check_leaf_chunk_item()
933 btrfs_item_size_nr(leaf, slot), in check_leaf_chunk_item()
943 static void dev_item_err(const struct extent_buffer *eb, int slot, in dev_item_err() argument
950 btrfs_item_key_to_cpu(eb, &key, slot); in dev_item_err()
957 "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", in dev_item_err()
959 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dev_item_err()
965 struct btrfs_key *key, int slot) in check_dev_item() argument
970 dev_item_err(leaf, slot, in check_dev_item()
975 ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); in check_dev_item()
977 dev_item_err(leaf, slot, in check_dev_item()
990 dev_item_err(leaf, slot, in check_dev_item()
1004 struct btrfs_key *key, int slot) in check_inode_item() argument
1015 ret = check_inode_key(leaf, key, slot); in check_inode_item()
1019 iitem = btrfs_item_ptr(leaf, slot, struct btrfs_inode_item); in check_inode_item()
1023 inode_item_err(leaf, slot, in check_inode_item()
1031 inode_item_err(leaf, slot, in check_inode_item()
1044 inode_item_err(leaf, slot, in check_inode_item()
1057 inode_item_err(leaf, slot, in check_inode_item()
1064 inode_item_err(leaf, slot, in check_inode_item()
1071 inode_item_err(leaf, slot, in check_inode_item()
1077 inode_item_err(leaf, slot, in check_inode_item()
1086 int slot) in check_root_item() argument
1094 ret = check_root_key(leaf, key, slot); in check_root_item()
1098 if (unlikely(btrfs_item_size_nr(leaf, slot) != sizeof(ri) && in check_root_item()
1099 btrfs_item_size_nr(leaf, slot) != in check_root_item()
1101 generic_err(leaf, slot, in check_root_item()
1103 btrfs_item_size_nr(leaf, slot), sizeof(ri), in check_root_item()
1113 read_extent_buffer(leaf, &ri, btrfs_item_ptr_offset(leaf, slot), in check_root_item()
1114 btrfs_item_size_nr(leaf, slot)); in check_root_item()
1119 generic_err(leaf, slot, in check_root_item()
1127 generic_err(leaf, slot, in check_root_item()
1135 generic_err(leaf, slot, in check_root_item()
1144 generic_err(leaf, slot, in check_root_item()
1150 generic_err(leaf, slot, in check_root_item()
1156 generic_err(leaf, slot, in check_root_item()
1164 generic_err(leaf, slot, in check_root_item()
1174 static void extent_err(const struct extent_buffer *eb, int slot, in extent_err() argument
1183 btrfs_item_key_to_cpu(eb, &key, slot); in extent_err()
1197 "corrupt %s: block=%llu slot=%d extent bytenr=%llu len=%llu %pV", in extent_err()
1199 eb->start, slot, bytenr, len, &vaf); in extent_err()
1204 struct btrfs_key *key, int slot) in check_extent_item() argument
1211 const u32 item_size = btrfs_item_size_nr(leaf, slot); in check_extent_item()
1219 generic_err(leaf, slot, in check_extent_item()
1225 generic_err(leaf, slot, in check_extent_item()
1234 extent_err(leaf, slot, in check_extent_item()
1260 extent_err(leaf, slot, in check_extent_item()
1266 end = item_size + btrfs_item_ptr_offset(leaf, slot); in check_extent_item()
1269 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in check_extent_item()
1275 extent_err(leaf, slot, in check_extent_item()
1283 extent_err(leaf, slot, in check_extent_item()
1293 extent_err(leaf, slot, in check_extent_item()
1300 extent_err(leaf, slot, in check_extent_item()
1306 extent_err(leaf, slot, in check_extent_item()
1312 extent_err(leaf, slot, in check_extent_item()
1325 extent_err(leaf, slot, in check_extent_item()
1344 extent_err(leaf, slot, in check_extent_item()
1353 extent_err(leaf, slot, in check_extent_item()
1368 extent_err(leaf, slot, in check_extent_item()
1384 extent_err(leaf, slot, in check_extent_item()
1396 extent_err(leaf, slot, in check_extent_item()
1404 extent_err(leaf, slot, "unknown inline ref type: %u", in check_extent_item()
1412 extent_err(leaf, slot, in check_extent_item()
1419 extent_err(leaf, slot, in check_extent_item()
1428 struct btrfs_key *key, int slot) in check_simple_keyed_refs() argument
1435 if (unlikely(btrfs_item_size_nr(leaf, slot) != expect_item_size)) { in check_simple_keyed_refs()
1436 generic_err(leaf, slot, in check_simple_keyed_refs()
1438 btrfs_item_size_nr(leaf, slot), in check_simple_keyed_refs()
1443 generic_err(leaf, slot, in check_simple_keyed_refs()
1450 extent_err(leaf, slot, in check_simple_keyed_refs()
1459 struct btrfs_key *key, int slot) in check_extent_data_ref() argument
1462 unsigned long ptr = btrfs_item_ptr_offset(leaf, slot); in check_extent_data_ref()
1463 const unsigned long end = ptr + btrfs_item_size_nr(leaf, slot); in check_extent_data_ref()
1465 if (unlikely(btrfs_item_size_nr(leaf, slot) % sizeof(*dref) != 0)) { in check_extent_data_ref()
1466 generic_err(leaf, slot, in check_extent_data_ref()
1468 btrfs_item_size_nr(leaf, slot), in check_extent_data_ref()
1473 generic_err(leaf, slot, in check_extent_data_ref()
1488 extent_err(leaf, slot, in check_extent_data_ref()
1497 #define inode_ref_err(eb, slot, fmt, args...) \ argument
1498 inode_item_err(eb, slot, fmt, ##args)
1501 int slot) in check_inode_ref() argument
1507 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_inode_ref()
1510 if (unlikely(btrfs_item_size_nr(leaf, slot) <= sizeof(*iref))) { in check_inode_ref()
1511 inode_ref_err(leaf, slot, in check_inode_ref()
1513 btrfs_item_size_nr(leaf, slot), in check_inode_ref()
1518 ptr = btrfs_item_ptr_offset(leaf, slot); in check_inode_ref()
1519 end = ptr + btrfs_item_size_nr(leaf, slot); in check_inode_ref()
1524 inode_ref_err(leaf, slot, in check_inode_ref()
1533 inode_ref_err(leaf, slot, in check_inode_ref()
1553 struct btrfs_key *key, int slot, in check_leaf_item() argument
1561 ret = check_extent_data_item(leaf, key, slot, prev_key); in check_leaf_item()
1564 ret = check_csum_item(leaf, key, slot, prev_key); in check_leaf_item()
1569 ret = check_dir_item(leaf, key, prev_key, slot); in check_leaf_item()
1572 ret = check_inode_ref(leaf, key, prev_key, slot); in check_leaf_item()
1575 ret = check_block_group_item(leaf, key, slot); in check_leaf_item()
1578 chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk); in check_leaf_item()
1579 ret = check_leaf_chunk_item(leaf, chunk, key, slot); in check_leaf_item()
1582 ret = check_dev_item(leaf, key, slot); in check_leaf_item()
1585 ret = check_inode_item(leaf, key, slot); in check_leaf_item()
1588 ret = check_root_item(leaf, key, slot); in check_leaf_item()
1592 ret = check_extent_item(leaf, key, slot); in check_leaf_item()
1597 ret = check_simple_keyed_refs(leaf, key, slot); in check_leaf_item()
1600 ret = check_extent_data_ref(leaf, key, slot); in check_leaf_item()
1613 int slot; in check_leaf() local
1668 for (slot = 0; slot < nritems; slot++) { in check_leaf()
1672 btrfs_item_key_to_cpu(leaf, &key, slot); in check_leaf()
1676 generic_err(leaf, slot, in check_leaf()
1689 if (slot == 0) in check_leaf()
1693 slot - 1); in check_leaf()
1694 if (unlikely(btrfs_item_end_nr(leaf, slot) != item_end_expected)) { in check_leaf()
1695 generic_err(leaf, slot, in check_leaf()
1697 btrfs_item_end_nr(leaf, slot), in check_leaf()
1707 if (unlikely(btrfs_item_end_nr(leaf, slot) > in check_leaf()
1709 generic_err(leaf, slot, in check_leaf()
1710 "slot end outside of leaf, have %u expect range [0, %u]", in check_leaf()
1711 btrfs_item_end_nr(leaf, slot), in check_leaf()
1717 if (unlikely(btrfs_item_ptr_offset(leaf, slot) < in check_leaf()
1718 btrfs_item_nr_offset(slot) + sizeof(struct btrfs_item))) { in check_leaf()
1719 generic_err(leaf, slot, in check_leaf()
1720 "slot overlaps with its data, item end %lu data start %lu", in check_leaf()
1721 btrfs_item_nr_offset(slot) + in check_leaf()
1723 btrfs_item_ptr_offset(leaf, slot)); in check_leaf()
1732 ret = check_leaf_item(leaf, &key, slot, &prev_key); in check_leaf()
1761 int slot; in btrfs_check_node() local
1781 for (slot = 0; slot < nr - 1; slot++) { in btrfs_check_node()
1782 bytenr = btrfs_node_blockptr(node, slot); in btrfs_check_node()
1783 btrfs_node_key_to_cpu(node, &key, slot); in btrfs_check_node()
1784 btrfs_node_key_to_cpu(node, &next_key, slot + 1); in btrfs_check_node()
1787 generic_err(node, slot, in btrfs_check_node()
1793 generic_err(node, slot, in btrfs_check_node()
1801 generic_err(node, slot, in btrfs_check_node()