aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r--fs/btrfs/ctree.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 6276add8538a..a85cf7d23309 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1786,10 +1786,12 @@ static noinline int generic_bin_search(struct extent_buffer *eb,
1786 if (!err) { 1786 if (!err) {
1787 tmp = (struct btrfs_disk_key *)(kaddr + offset - 1787 tmp = (struct btrfs_disk_key *)(kaddr + offset -
1788 map_start); 1788 map_start);
1789 } else { 1789 } else if (err == 1) {
1790 read_extent_buffer(eb, &unaligned, 1790 read_extent_buffer(eb, &unaligned,
1791 offset, sizeof(unaligned)); 1791 offset, sizeof(unaligned));
1792 tmp = &unaligned; 1792 tmp = &unaligned;
1793 } else {
1794 return err;
1793 } 1795 }
1794 1796
1795 } else { 1797 } else {
@@ -2830,6 +2832,8 @@ cow_done:
2830 } 2832 }
2831 2833
2832 ret = key_search(b, key, level, &prev_cmp, &slot); 2834 ret = key_search(b, key, level, &prev_cmp, &slot);
2835 if (ret < 0)
2836 goto done;
2833 2837
2834 if (level != 0) { 2838 if (level != 0) {
2835 int dec = 0; 2839 int dec = 0;