Lines Matching full:slot
53 * Append generic "corrupt leaf/node root=%llu block=%llu slot=%d: " to @fmt.
58 static void generic_err(const struct extent_buffer *eb, int slot, in generic_err() argument
71 "corrupt %s: root=%llu block=%llu slot=%d, %pV", in generic_err()
73 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, &vaf); in generic_err()
83 static void file_extent_err(const struct extent_buffer *eb, int slot, in file_extent_err() argument
91 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()
158 "corrupt %s: root=%llu block=%llu slot=%d ino=%llu, %pV", in dir_item_err()
160 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dir_item_err()
175 struct btrfs_key *key, int slot, in check_prev_ino() argument
179 if (slot == 0) in check_prev_ino()
200 dir_item_err(leaf, slot, in check_prev_ino()
206 struct btrfs_key *key, int slot, in check_extent_data_item() argument
212 u32 item_size = btrfs_item_size(leaf, slot); in check_extent_data_item()
216 file_extent_err(leaf, slot, in check_extent_data_item()
228 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_extent_data_item()
231 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); in check_extent_data_item()
238 file_extent_err(leaf, slot, in check_extent_data_item()
246 file_extent_err(leaf, slot, in check_extent_data_item()
259 file_extent_err(leaf, slot, in check_extent_data_item()
266 file_extent_err(leaf, slot, in check_extent_data_item()
274 file_extent_err(leaf, slot, in check_extent_data_item()
288 file_extent_err(leaf, slot, in check_extent_data_item()
299 file_extent_err(leaf, slot, in check_extent_data_item()
304 if (unlikely(CHECK_FE_ALIGNED(leaf, slot, fi, ram_bytes, sectorsize) || in check_extent_data_item()
305 CHECK_FE_ALIGNED(leaf, slot, fi, disk_bytenr, sectorsize) || in check_extent_data_item()
306 CHECK_FE_ALIGNED(leaf, slot, fi, disk_num_bytes, sectorsize) || in check_extent_data_item()
307 CHECK_FE_ALIGNED(leaf, slot, fi, offset, sectorsize) || in check_extent_data_item()
308 CHECK_FE_ALIGNED(leaf, slot, fi, num_bytes, sectorsize))) in check_extent_data_item()
314 file_extent_err(leaf, slot, in check_extent_data_item()
325 if (slot > 0 && in check_extent_data_item()
331 prev_fi = btrfs_item_ptr(leaf, slot - 1, in check_extent_data_item()
335 file_extent_err(leaf, slot - 1, in check_extent_data_item()
346 int slot, struct btrfs_key *prev_key) in check_csum_item() argument
353 generic_err(leaf, slot, in check_csum_item()
359 generic_err(leaf, slot, in check_csum_item()
364 if (unlikely(!IS_ALIGNED(btrfs_item_size(leaf, slot), csumsize))) { in check_csum_item()
365 generic_err(leaf, slot, in check_csum_item()
367 btrfs_item_size(leaf, slot), csumsize); in check_csum_item()
370 if (slot > 0 && prev_key->type == BTRFS_EXTENT_CSUM_KEY) { in check_csum_item()
374 prev_item_size = btrfs_item_size(leaf, slot - 1); in check_csum_item()
378 generic_err(leaf, slot - 1, in check_csum_item()
388 #define inode_item_err(eb, slot, fmt, ...) \ argument
389 dir_item_err(eb, slot, fmt, __VA_ARGS__)
392 int slot) in check_inode_key() argument
397 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_inode_key()
413 generic_err(leaf, slot, in check_inode_key()
420 dir_item_err(leaf, slot, in check_inode_key()
431 inode_item_err(leaf, slot, in check_inode_key()
435 dir_item_err(leaf, slot, in check_inode_key()
444 int slot) in check_root_key() argument
449 btrfs_item_key_to_cpu(leaf, &item_key, slot); in check_root_key()
460 generic_err(leaf, slot, in check_root_key()
469 generic_err(leaf, slot, "invalid root id 0"); in check_root_key()
471 dir_item_err(leaf, slot, in check_root_key()
478 dir_item_err(leaf, slot, in check_root_key()
495 generic_err(leaf, slot, "invalid root id 0 for reloc tree"); in check_root_key()
503 int slot) in check_dir_item() argument
507 u32 item_size = btrfs_item_size(leaf, slot); in check_dir_item()
510 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_dir_item()
513 di = btrfs_item_ptr(leaf, slot, struct btrfs_dir_item); in check_dir_item()
526 dir_item_err(leaf, slot, in check_dir_item()
535 ret = check_root_key(leaf, &location_key, slot); in check_dir_item()
540 ret = check_inode_key(leaf, &location_key, slot); in check_dir_item()
544 dir_item_err(leaf, slot, in check_dir_item()
554 dir_item_err(leaf, slot, in check_dir_item()
562 dir_item_err(leaf, slot, in check_dir_item()
569 dir_item_err(leaf, slot, in check_dir_item()
582 dir_item_err(leaf, slot, in check_dir_item()
588 dir_item_err(leaf, slot, in check_dir_item()
596 dir_item_err(leaf, slot, in check_dir_item()
606 dir_item_err(leaf, slot, in check_dir_item()
624 dir_item_err(leaf, slot, in check_dir_item()
638 static void block_group_err(const struct extent_buffer *eb, int slot, in block_group_err() argument
646 btrfs_item_key_to_cpu(eb, &key, slot); in block_group_err()
653 "corrupt %s: root=%llu block=%llu slot=%d bg_start=%llu bg_len=%llu, %pV", in block_group_err()
655 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in block_group_err()
661 struct btrfs_key *key, int slot) in check_block_group_item() argument
665 u32 item_size = btrfs_item_size(leaf, slot); in check_block_group_item()
675 block_group_err(leaf, slot, in check_block_group_item()
681 block_group_err(leaf, slot, in check_block_group_item()
687 read_extent_buffer(leaf, &bgi, btrfs_item_ptr_offset(leaf, slot), in check_block_group_item()
699 block_group_err(leaf, slot, in check_block_group_item()
706 block_group_err(leaf, slot, in check_block_group_item()
714 block_group_err(leaf, slot, in check_block_group_item()
722 block_group_err(leaf, slot, in check_block_group_item()
735 block_group_err(leaf, slot, in check_block_group_item()
757 int slot = -1; in chunk_err() local
764 * Get the slot number by iterating through all slots, this in chunk_err()
770 slot = i; in chunk_err()
785 "corrupt leaf: root=%llu block=%llu slot=%d chunk_start=%llu, %pV", in chunk_err()
786 BTRFS_CHUNK_TREE_OBJECTID, leaf->start, slot, in chunk_err()
963 struct btrfs_key *key, int slot) in check_leaf_chunk_item() argument
967 if (unlikely(btrfs_item_size(leaf, slot) < sizeof(struct btrfs_chunk))) { in check_leaf_chunk_item()
970 btrfs_item_size(leaf, slot), in check_leaf_chunk_item()
982 btrfs_item_size(leaf, slot))) { in check_leaf_chunk_item()
985 btrfs_item_size(leaf, slot), in check_leaf_chunk_item()
995 static void dev_item_err(const struct extent_buffer *eb, int slot, in dev_item_err() argument
1002 btrfs_item_key_to_cpu(eb, &key, slot); in dev_item_err()
1009 "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", in dev_item_err()
1011 btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, in dev_item_err()
1017 struct btrfs_key *key, int slot) in check_dev_item() argument
1020 const u32 item_size = btrfs_item_size(leaf, slot); in check_dev_item()
1023 dev_item_err(leaf, slot, in check_dev_item()
1030 dev_item_err(leaf, slot, "invalid item size: has %u expect %zu", in check_dev_item()
1035 ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); in check_dev_item()
1037 dev_item_err(leaf, slot, in check_dev_item()
1050 dev_item_err(leaf, slot, in check_dev_item()
1064 struct btrfs_key *key, int slot) in check_inode_item() argument
1070 const u32 item_size = btrfs_item_size(leaf, slot); in check_inode_item()
1076 ret = check_inode_key(leaf, key, slot); in check_inode_item()
1081 generic_err(leaf, slot, "invalid item size: has %u expect %zu", in check_inode_item()
1086 iitem = btrfs_item_ptr(leaf, slot, struct btrfs_inode_item); in check_inode_item()
1090 inode_item_err(leaf, slot, in check_inode_item()
1098 inode_item_err(leaf, slot, in check_inode_item()
1111 inode_item_err(leaf, slot, in check_inode_item()
1124 inode_item_err(leaf, slot, in check_inode_item()
1131 inode_item_err(leaf, slot, in check_inode_item()
1138 inode_item_err(leaf, slot, in check_inode_item()
1144 inode_item_err(leaf, slot, in check_inode_item()
1153 int slot) in check_root_item() argument
1161 ret = check_root_key(leaf, key, slot); in check_root_item()
1165 if (unlikely(btrfs_item_size(leaf, slot) != sizeof(ri) && in check_root_item()
1166 btrfs_item_size(leaf, slot) != in check_root_item()
1168 generic_err(leaf, slot, in check_root_item()
1170 btrfs_item_size(leaf, slot), sizeof(ri), in check_root_item()
1180 read_extent_buffer(leaf, &ri, btrfs_item_ptr_offset(leaf, slot), in check_root_item()
1181 btrfs_item_size(leaf, slot)); in check_root_item()
1186 generic_err(leaf, slot, in check_root_item()
1194 generic_err(leaf, slot, in check_root_item()
1202 generic_err(leaf, slot, in check_root_item()
1211 generic_err(leaf, slot, in check_root_item()
1217 generic_err(leaf, slot, in check_root_item()
1223 generic_err(leaf, slot, in check_root_item()
1231 generic_err(leaf, slot, in check_root_item()
1241 static void extent_err(const struct extent_buffer *eb, int slot, in extent_err() argument
1250 btrfs_item_key_to_cpu(eb, &key, slot); in extent_err()
1264 "corrupt %s: block=%llu slot=%d extent bytenr=%llu len=%llu %pV", in extent_err()
1266 eb->start, slot, bytenr, len, &vaf); in extent_err()
1271 struct btrfs_key *key, int slot, in check_extent_item() argument
1279 const u32 item_size = btrfs_item_size(leaf, slot); in check_extent_item()
1289 generic_err(leaf, slot, in check_extent_item()
1295 generic_err(leaf, slot, in check_extent_item()
1304 extent_err(leaf, slot, in check_extent_item()
1342 extent_err(leaf, slot, in check_extent_item()
1348 end = item_size + btrfs_item_ptr_offset(leaf, slot); in check_extent_item()
1351 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in check_extent_item()
1357 extent_err(leaf, slot, in check_extent_item()
1365 extent_err(leaf, slot, in check_extent_item()
1375 extent_err(leaf, slot, in check_extent_item()
1382 extent_err(leaf, slot, in check_extent_item()
1388 extent_err(leaf, slot, in check_extent_item()
1394 extent_err(leaf, slot, in check_extent_item()
1407 extent_err(leaf, slot, in check_extent_item()
1427 extent_err(leaf, slot, in check_extent_item()
1437 extent_err(leaf, slot, in check_extent_item()
1452 extent_err(leaf, slot, in check_extent_item()
1472 extent_err(leaf, slot, in check_extent_item()
1484 extent_err(leaf, slot, in check_extent_item()
1495 extent_err(leaf, slot, "unknown inline ref type: %u", in check_extent_item()
1500 extent_err(leaf, slot, in check_extent_item()
1509 extent_err(leaf, slot, in check_extent_item()
1521 extent_err(leaf, slot, in check_extent_item()
1528 extent_err(leaf, slot, in check_extent_item()
1544 extent_err(leaf, slot, in check_extent_item()
1557 struct btrfs_key *key, int slot) in check_simple_keyed_refs() argument
1564 if (unlikely(btrfs_item_size(leaf, slot) != expect_item_size)) { in check_simple_keyed_refs()
1565 generic_err(leaf, slot, in check_simple_keyed_refs()
1567 btrfs_item_size(leaf, slot), in check_simple_keyed_refs()
1572 generic_err(leaf, slot, in check_simple_keyed_refs()
1579 extent_err(leaf, slot, in check_simple_keyed_refs()
1588 struct btrfs_key *key, int slot) in check_extent_data_ref() argument
1591 unsigned long ptr = btrfs_item_ptr_offset(leaf, slot); in check_extent_data_ref()
1592 const unsigned long end = ptr + btrfs_item_size(leaf, slot); in check_extent_data_ref()
1594 if (unlikely(btrfs_item_size(leaf, slot) % sizeof(*dref) != 0)) { in check_extent_data_ref()
1595 generic_err(leaf, slot, in check_extent_data_ref()
1597 btrfs_item_size(leaf, slot), in check_extent_data_ref()
1602 generic_err(leaf, slot, in check_extent_data_ref()
1617 extent_err(leaf, slot, in check_extent_data_ref()
1626 #define inode_ref_err(eb, slot, fmt, args...) \ argument
1627 inode_item_err(eb, slot, fmt, ##args)
1630 int slot) in check_inode_ref() argument
1636 if (unlikely(!check_prev_ino(leaf, key, slot, prev_key))) in check_inode_ref()
1639 if (unlikely(btrfs_item_size(leaf, slot) <= sizeof(*iref))) { in check_inode_ref()
1640 inode_ref_err(leaf, slot, in check_inode_ref()
1642 btrfs_item_size(leaf, slot), in check_inode_ref()
1647 ptr = btrfs_item_ptr_offset(leaf, slot); in check_inode_ref()
1648 end = ptr + btrfs_item_size(leaf, slot); in check_inode_ref()
1653 inode_ref_err(leaf, slot, in check_inode_ref()
1662 inode_ref_err(leaf, slot, in check_inode_ref()
1679 const struct btrfs_key *key, int slot) in check_raid_stripe_extent() argument
1682 btrfs_item_ptr(leaf, slot, struct btrfs_stripe_extent); in check_raid_stripe_extent()
1685 generic_err(leaf, slot, in check_raid_stripe_extent()
1692 generic_err(leaf, slot, in check_raid_stripe_extent()
1708 generic_err(leaf, slot, "invalid raid stripe encoding %u", in check_raid_stripe_extent()
1721 int slot, in check_leaf_item() argument
1729 ret = check_extent_data_item(leaf, key, slot, prev_key); in check_leaf_item()
1732 ret = check_csum_item(leaf, key, slot, prev_key); in check_leaf_item()
1737 ret = check_dir_item(leaf, key, prev_key, slot); in check_leaf_item()
1740 ret = check_inode_ref(leaf, key, prev_key, slot); in check_leaf_item()
1743 ret = check_block_group_item(leaf, key, slot); in check_leaf_item()
1746 chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk); in check_leaf_item()
1747 ret = check_leaf_chunk_item(leaf, chunk, key, slot); in check_leaf_item()
1750 ret = check_dev_item(leaf, key, slot); in check_leaf_item()
1753 ret = check_inode_item(leaf, key, slot); in check_leaf_item()
1756 ret = check_root_item(leaf, key, slot); in check_leaf_item()
1760 ret = check_extent_item(leaf, key, slot, prev_key); in check_leaf_item()
1765 ret = check_simple_keyed_refs(leaf, key, slot); in check_leaf_item()
1768 ret = check_extent_data_ref(leaf, key, slot); in check_leaf_item()
1771 ret = check_raid_stripe_extent(leaf, key, slot); in check_leaf_item()
1787 int slot; in __btrfs_check_leaf() local
1854 for (slot = 0; slot < nritems; slot++) { in __btrfs_check_leaf()
1858 btrfs_item_key_to_cpu(leaf, &key, slot); in __btrfs_check_leaf()
1862 generic_err(leaf, slot, in __btrfs_check_leaf()
1870 item_data_end = (u64)btrfs_item_offset(leaf, slot) + in __btrfs_check_leaf()
1871 btrfs_item_size(leaf, slot); in __btrfs_check_leaf()
1877 if (slot == 0) in __btrfs_check_leaf()
1881 slot - 1); in __btrfs_check_leaf()
1883 generic_err(leaf, slot, in __btrfs_check_leaf()
1895 generic_err(leaf, slot, in __btrfs_check_leaf()
1896 "slot end outside of leaf, have %llu expect range [0, %u]", in __btrfs_check_leaf()
1902 if (unlikely(btrfs_item_ptr_offset(leaf, slot) < in __btrfs_check_leaf()
1903 btrfs_item_nr_offset(leaf, slot) + sizeof(struct btrfs_item))) { in __btrfs_check_leaf()
1904 generic_err(leaf, slot, in __btrfs_check_leaf()
1905 "slot overlaps with its data, item end %lu data start %lu", in __btrfs_check_leaf()
1906 btrfs_item_nr_offset(leaf, slot) + in __btrfs_check_leaf()
1908 btrfs_item_ptr_offset(leaf, slot)); in __btrfs_check_leaf()
1923 ret = check_leaf_item(leaf, &key, slot, &prev_key); in __btrfs_check_leaf()
1952 int slot; in __btrfs_check_node() local
1971 for (slot = 0; slot < nr - 1; slot++) { in __btrfs_check_node()
1972 bytenr = btrfs_node_blockptr(node, slot); in __btrfs_check_node()
1973 btrfs_node_key_to_cpu(node, &key, slot); in __btrfs_check_node()
1974 btrfs_node_key_to_cpu(node, &next_key, slot + 1); in __btrfs_check_node()
1977 generic_err(node, slot, in __btrfs_check_node()
1982 generic_err(node, slot, in __btrfs_check_node()
1989 generic_err(node, slot, in __btrfs_check_node()