From: Wang Shilong <wangsl.f...@cn.fujitsu.com>

Since we have introduced btrfs_previous_extent_item() to search previous
extent item, just switch into it.

Signed-off-by: Wang Shilong <wangsl.f...@cn.fujitsu.com>
---
 fs/btrfs/backref.c | 34 +++-------------------------------
 1 file changed, 3 insertions(+), 31 deletions(-)

diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index aded3ef..4f59f07 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -1333,37 +1333,9 @@ int extent_from_logical(struct btrfs_fs_info *fs_info, 
u64 logical,
        if (ret < 0)
                return ret;
 
-       while (1) {
-               u32 nritems;
-               if (path->slots[0] == 0) {
-                       btrfs_set_path_blocking(path);
-                       ret = btrfs_prev_leaf(fs_info->extent_root, path);
-                       if (ret != 0) {
-                               if (ret > 0) {
-                                       pr_debug("logical %llu is not within "
-                                                "any extent\n", logical);
-                                       ret = -ENOENT;
-                               }
-                               return ret;
-                       }
-               } else {
-                       path->slots[0]--;
-               }
-               nritems = btrfs_header_nritems(path->nodes[0]);
-               if (nritems == 0) {
-                       pr_debug("logical %llu is not within any extent\n",
-                                logical);
-                       return -ENOENT;
-               }
-               if (path->slots[0] == nritems)
-                       path->slots[0]--;
-
-               btrfs_item_key_to_cpu(path->nodes[0], found_key,
-                                     path->slots[0]);
-               if (found_key->type == BTRFS_EXTENT_ITEM_KEY ||
-                   found_key->type == BTRFS_METADATA_ITEM_KEY)
-                       break;
-       }
+       ret = btrfs_previous_extent_item(fs_info->extent_root, path, 0);
+       if (ret)
+               return ret;
 
        if (found_key->type == BTRFS_METADATA_ITEM_KEY)
                size = fs_info->extent_root->leafsize;
-- 
1.8.4

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to