+++ /dev/null
-From a002fcae9fff7c24e61e106ccd983e2494eac478 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 20 Jun 2019 15:37:52 -0400
-Subject: btrfs: make caching_thread use btrfs_find_next_key
-
-From: Josef Bacik <josef@toxicpanda.com>
-
-[ Upstream commit 6a9fb468f1152d6254f49fee6ac28c3cfa3367e5 ]
-
-extent-tree.c has a find_next_key that just walks up the path to find
-the next key, but it is used for both the caching stuff and the snapshot
-delete stuff. The snapshot deletion stuff is special so it can't really
-use btrfs_find_next_key, but the caching thread stuff can. We just need
-to fix btrfs_find_next_key to deal with ->skip_locking and then it works
-exactly the same as the private find_next_key helper.
-
-Signed-off-by: Josef Bacik <josef@toxicpanda.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/btrfs/ctree.c | 4 ++--
- fs/btrfs/extent-tree.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
-index c9943d70e2cb2..d03944735ee42 100644
---- a/fs/btrfs/ctree.c
-+++ b/fs/btrfs/ctree.c
-@@ -5665,7 +5665,7 @@ int btrfs_find_next_key(struct btrfs_root *root, struct btrfs_path *path,
- int slot;
- struct extent_buffer *c;
-
-- WARN_ON(!path->keep_locks);
-+ WARN_ON(!path->keep_locks && !path->skip_locking);
- while (level < BTRFS_MAX_LEVEL) {
- if (!path->nodes[level])
- return 1;
-@@ -5681,7 +5681,7 @@ int btrfs_find_next_key(struct btrfs_root *root, struct btrfs_path *path,
- !path->nodes[level + 1])
- return 1;
-
-- if (path->locks[level + 1]) {
-+ if (path->locks[level + 1] || path->skip_locking) {
- level++;
- continue;
- }
-diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
-index 271e70c45d5bd..954e558c4380f 100644
---- a/fs/btrfs/extent-tree.c
-+++ b/fs/btrfs/extent-tree.c
-@@ -436,7 +436,7 @@ static int load_extent_tree_free(struct btrfs_caching_control *caching_ctl)
- if (path->slots[0] < nritems) {
- btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
- } else {
-- ret = find_next_key(path, 0, &key);
-+ ret = btrfs_find_next_key(extent_root, path, &key, 0, 0);
- if (ret)
- break;
-
---
-2.25.1
-