bcachefs: fix bch2_hash_delete() error path
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 15 Oct 2024 02:40:20 +0000 (22:40 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 18 Oct 2024 04:49:47 +0000 (00:49 -0400)
we were exiting an iterator that hadn't been initialized

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/str_hash.h

index 215eed4cce6d2c4111980c56f88a2b6ec82f4fa2..cc2084e9f1cc19ab2b971507701614c3e2c18231 100644 (file)
@@ -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;
 }