diff options
Diffstat (limited to 'libbcachefs/btree_iter.c')
-rw-r--r-- | libbcachefs/btree_iter.c | 5 |
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; |