summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_iter.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/btree_iter.c')
-rw-r--r--libbcachefs/btree_iter.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libbcachefs/btree_iter.c b/libbcachefs/btree_iter.c
index 1eae181d..ae1d4f85 100644
--- a/libbcachefs/btree_iter.c
+++ b/libbcachefs/btree_iter.c
@@ -817,7 +817,7 @@ static inline int btree_iter_lock_root(struct btree_iter *iter,
*/
iter->level = depth_want;
iter->l[iter->level].b = NULL;
- return 0;
+ return 1;
}
lock_type = __btree_lock_want(iter, iter->level);
@@ -1044,6 +1044,9 @@ int __must_check __bch2_btree_iter_traverse(struct btree_iter *iter)
? btree_iter_down(iter)
: btree_iter_lock_root(iter, depth_want);
if (unlikely(ret)) {
+ if (ret == 1)
+ return 0;
+
iter->level = depth_want;
iter->l[iter->level].b = BTREE_ITER_NOT_END;
return ret;