diff options
Diffstat (limited to 'fs/btrfs/tree-checker.c')
-rw-r--r-- | fs/btrfs/tree-checker.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c index 1dac957eaf35..03bee2b0e1d5 100644 --- a/fs/btrfs/tree-checker.c +++ b/fs/btrfs/tree-checker.c | |||
@@ -606,10 +606,9 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
606 | return 0; | 606 | return 0; |
607 | } | 607 | } |
608 | 608 | ||
609 | __printf(4, 5) | 609 | __printf(3, 4) |
610 | __cold | 610 | __cold |
611 | static void dev_item_err(const struct btrfs_fs_info *fs_info, | 611 | static void dev_item_err(const struct extent_buffer *eb, int slot, |
612 | const struct extent_buffer *eb, int slot, | ||
613 | const char *fmt, ...) | 612 | const char *fmt, ...) |
614 | { | 613 | { |
615 | struct btrfs_key key; | 614 | struct btrfs_key key; |
@@ -622,7 +621,7 @@ static void dev_item_err(const struct btrfs_fs_info *fs_info, | |||
622 | vaf.fmt = fmt; | 621 | vaf.fmt = fmt; |
623 | vaf.va = &args; | 622 | vaf.va = &args; |
624 | 623 | ||
625 | btrfs_crit(fs_info, | 624 | btrfs_crit(eb->fs_info, |
626 | "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", | 625 | "corrupt %s: root=%llu block=%llu slot=%d devid=%llu %pV", |
627 | btrfs_header_level(eb) == 0 ? "leaf" : "node", | 626 | btrfs_header_level(eb) == 0 ? "leaf" : "node", |
628 | btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, | 627 | btrfs_header_owner(eb), btrfs_header_bytenr(eb), slot, |
@@ -638,20 +637,20 @@ static int check_dev_item(struct btrfs_fs_info *fs_info, | |||
638 | u64 max_devid = max(BTRFS_MAX_DEVS(fs_info), BTRFS_MAX_DEVS_SYS_CHUNK); | 637 | u64 max_devid = max(BTRFS_MAX_DEVS(fs_info), BTRFS_MAX_DEVS_SYS_CHUNK); |
639 | 638 | ||
640 | if (key->objectid != BTRFS_DEV_ITEMS_OBJECTID) { | 639 | if (key->objectid != BTRFS_DEV_ITEMS_OBJECTID) { |
641 | dev_item_err(fs_info, leaf, slot, | 640 | dev_item_err(leaf, slot, |
642 | "invalid objectid: has=%llu expect=%llu", | 641 | "invalid objectid: has=%llu expect=%llu", |
643 | key->objectid, BTRFS_DEV_ITEMS_OBJECTID); | 642 | key->objectid, BTRFS_DEV_ITEMS_OBJECTID); |
644 | return -EUCLEAN; | 643 | return -EUCLEAN; |
645 | } | 644 | } |
646 | if (key->offset > max_devid) { | 645 | if (key->offset > max_devid) { |
647 | dev_item_err(fs_info, leaf, slot, | 646 | dev_item_err(leaf, slot, |
648 | "invalid devid: has=%llu expect=[0, %llu]", | 647 | "invalid devid: has=%llu expect=[0, %llu]", |
649 | key->offset, max_devid); | 648 | key->offset, max_devid); |
650 | return -EUCLEAN; | 649 | return -EUCLEAN; |
651 | } | 650 | } |
652 | ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); | 651 | ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item); |
653 | if (btrfs_device_id(leaf, ditem) != key->offset) { | 652 | if (btrfs_device_id(leaf, ditem) != key->offset) { |
654 | dev_item_err(fs_info, leaf, slot, | 653 | dev_item_err(leaf, slot, |
655 | "devid mismatch: key has=%llu item has=%llu", | 654 | "devid mismatch: key has=%llu item has=%llu", |
656 | key->offset, btrfs_device_id(leaf, ditem)); | 655 | key->offset, btrfs_device_id(leaf, ditem)); |
657 | return -EUCLEAN; | 656 | return -EUCLEAN; |
@@ -664,7 +663,7 @@ static int check_dev_item(struct btrfs_fs_info *fs_info, | |||
664 | */ | 663 | */ |
665 | if (btrfs_device_bytes_used(leaf, ditem) > | 664 | if (btrfs_device_bytes_used(leaf, ditem) > |
666 | btrfs_device_total_bytes(leaf, ditem)) { | 665 | btrfs_device_total_bytes(leaf, ditem)) { |
667 | dev_item_err(fs_info, leaf, slot, | 666 | dev_item_err(leaf, slot, |
668 | "invalid bytes used: have %llu expect [0, %llu]", | 667 | "invalid bytes used: have %llu expect [0, %llu]", |
669 | btrfs_device_bytes_used(leaf, ditem), | 668 | btrfs_device_bytes_used(leaf, ditem), |
670 | btrfs_device_total_bytes(leaf, ditem)); | 669 | btrfs_device_total_bytes(leaf, ditem)); |