]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/buckets.c
Update bcachefs sources to 0010403265 bcachefs: Fix spurious alloc errors on forced...
[bcachefs-tools-debian] / libbcachefs / buckets.c
index f7bdb14372f81bdbeb549fe6942bb6d0df7bea19..1b1200c551346ddb73996de4d3653029917a1776 100644 (file)
@@ -1576,9 +1576,6 @@ static int trans_get_key(struct btree_trans *trans,
 
        *iter = bch2_trans_get_iter(trans, btree_id, pos,
                                    flags|BTREE_ITER_INTENT);
-       if (IS_ERR(*iter))
-               return PTR_ERR(*iter);
-
        *k = __bch2_btree_iter_peek(*iter, flags);
        ret = bkey_err(*k);
        if (ret)
@@ -1606,9 +1603,6 @@ static int bch2_trans_start_alloc_update(struct btree_trans *trans, struct btree
                                           BTREE_ITER_CACHED|
                                           BTREE_ITER_CACHED_NOFILL|
                                           BTREE_ITER_INTENT);
-               if (IS_ERR(iter))
-                       return PTR_ERR(iter);
-
                ret = bch2_btree_iter_traverse(iter);
                if (ret) {
                        bch2_trans_iter_put(trans, iter);
@@ -2044,6 +2038,16 @@ static u64 bch2_recalc_sectors_available(struct bch_fs *c)
        return avail_factor(__bch2_fs_usage_read_short(c).free);
 }
 
+void __bch2_disk_reservation_put(struct bch_fs *c, struct disk_reservation *res)
+{
+       percpu_down_read(&c->mark_lock);
+       this_cpu_sub(c->usage[0]->online_reserved,
+                    res->sectors);
+       percpu_up_read(&c->mark_lock);
+
+       res->sectors = 0;
+}
+
 #define SECTORS_CACHE  1024
 
 int bch2_disk_reservation_add(struct bch_fs *c, struct disk_reservation *res,