fs: btrfs: Fix wrong comparison in logical to physical mapping
authorMarek BehĂșn <marek.behun@nic.cz>
Wed, 4 Jul 2018 18:23:01 +0000 (20:23 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 20 Jul 2018 19:37:44 +0000 (15:37 -0400)
commitf8c173b6a0b7695089d5ec48cb5b320863c91fdf
tree0a3506445bea0ed84db77e574a2901d45a5d5d83
parent25dabd730a534a93b585fe6623783e034399c68e
fs: btrfs: Fix wrong comparison in logical to physical mapping

The comparison
  logical > item->logical + item->length
in btrfs_map_logical_to_physical is wrong and should be instead
  logical >= item->logical + item->length
For example, if
  item->logical = 4096
  item->length = 4096
and we are looking for logical = 8192, it is not part of item (item is
[4096, 8191]). But the comparison is false and we think we have found
the correct item, although we should be searing in the right subtree.

This fixes some bugs I encountered.

Signed-off-by: Marek Behun <marek.behun@nic.cz>
fs/btrfs/chunk-map.c