]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/alloc_background.c
Update bcachefs sources to 5963d1b1a4 bcacehfs: Fix bch2_get_alloc_in_memory_pos()
[bcachefs-tools-debian] / libbcachefs / alloc_background.c
index 727e505730cc61a33c20038e6935a490cf1d7989..1acdee8226eb1debaa3e2c8070cdd7b2c4bc4809 100644 (file)
@@ -540,15 +540,17 @@ bch2_trans_start_alloc_update(struct btree_trans *trans, struct btree_iter *iter
                             BTREE_ITER_INTENT);
        k = bch2_btree_iter_peek_slot(iter);
        ret = bkey_err(k);
-       if (ret) {
-               bch2_trans_iter_exit(trans, iter);
-               return ERR_PTR(ret);
-       }
+       if (unlikely(ret))
+               goto err;
 
        a = bch2_alloc_to_v4_mut_inlined(trans, k);
-       if (IS_ERR(a))
-               bch2_trans_iter_exit(trans, iter);
+       ret = PTR_ERR_OR_ZERO(a);
+       if (unlikely(ret))
+               goto err;
        return a;
+err:
+       bch2_trans_iter_exit(trans, iter);
+       return ERR_PTR(ret);
 }
 
 int bch2_alloc_read(struct bch_fs *c)
@@ -1100,7 +1102,7 @@ static int bch2_discard_one_bucket(struct btree_trans *trans,
                goto out;
        }
 
-       if (bkey_cmp(*discard_pos_done, iter.pos) &&
+       if (!bkey_eq(*discard_pos_done, iter.pos) &&
            ca->mi.discard && !c->opts.nochanges) {
                /*
                 * This works without any other locks because this is the only