diff options
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 6bd5ce9d75f0..977e715f0bf2 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -756,8 +756,16 @@ next_slot: | |||
756 | } | 756 | } |
757 | 757 | ||
758 | btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); | 758 | btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); |
759 | if (key.objectid > ino || | 759 | |
760 | key.type > BTRFS_EXTENT_DATA_KEY || key.offset >= end) | 760 | if (key.objectid > ino) |
761 | break; | ||
762 | if (WARN_ON_ONCE(key.objectid < ino) || | ||
763 | key.type < BTRFS_EXTENT_DATA_KEY) { | ||
764 | ASSERT(del_nr == 0); | ||
765 | path->slots[0]++; | ||
766 | goto next_slot; | ||
767 | } | ||
768 | if (key.type > BTRFS_EXTENT_DATA_KEY || key.offset >= end) | ||
761 | break; | 769 | break; |
762 | 770 | ||
763 | fi = btrfs_item_ptr(leaf, path->slots[0], | 771 | fi = btrfs_item_ptr(leaf, path->slots[0], |
@@ -776,8 +784,8 @@ next_slot: | |||
776 | btrfs_file_extent_inline_len(leaf, | 784 | btrfs_file_extent_inline_len(leaf, |
777 | path->slots[0], fi); | 785 | path->slots[0], fi); |
778 | } else { | 786 | } else { |
779 | WARN_ON(1); | 787 | /* can't happen */ |
780 | extent_end = search_start; | 788 | BUG(); |
781 | } | 789 | } |
782 | 790 | ||
783 | /* | 791 | /* |