we were exiting an iterator that hadn't been initialized

Signed-off-by: Kent Overstreet <[email protected]>
---
 fs/bcachefs/str_hash.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/fs/bcachefs/str_hash.h b/fs/bcachefs/str_hash.h
index 215eed4cce6d..cc2084e9f1cc 100644
--- a/fs/bcachefs/str_hash.h
+++ b/fs/bcachefs/str_hash.h
@@ -363,8 +363,11 @@ int bch2_hash_delete(struct btree_trans *trans,
        struct btree_iter iter;
        struct bkey_s_c k = bch2_hash_lookup(trans, &iter, desc, info, inum, 
key,
                                             BTREE_ITER_intent);
-       int ret = bkey_err(k) ?:
-                 bch2_hash_delete_at(trans, desc, info, &iter, 0);
+       int ret = bkey_err(k);
+       if (ret)
+               return ret;
+
+       ret = bch2_hash_delete_at(trans, desc, info, &iter, 0);
        bch2_trans_iter_exit(trans, &iter);
        return ret;
 }
-- 
2.45.2


Reply via email to