bcachefs: Fix error handling in bch2_btree_update_start()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 23 Sep 2022 01:27:42 +0000 (21:27 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:41 +0000 (17:09 -0400)
We were checking for -EAGAIN, but we're not returned that when we didn't
pass a closure to wait with - oops.

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

index 7028597358d5f9a753874e2c5193157d8aac98c1..0d87b1c88ed40efdfd304bc4f2639d18dc241a48 100644 (file)
@@ -1110,8 +1110,8 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path,
                goto err;
 
        ret = bch2_btree_reserve_get(trans, as, nr_nodes, flags, NULL);
-       if (ret == -EAGAIN ||
-           ret == -ENOMEM) {
+       if (bch2_err_matches(ret, ENOSPC) ||
+           bch2_err_matches(ret, ENOMEM)) {
                struct closure cl;
 
                closure_init_stack(&cl);