summaryrefslogtreecommitdiff
path: root/libbcachefs/buckets.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/buckets.c')
-rw-r--r--libbcachefs/buckets.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libbcachefs/buckets.c b/libbcachefs/buckets.c
index f7bdb143..1b1200c5 100644
--- a/libbcachefs/buckets.c
+++ b/libbcachefs/buckets.c
@@ -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,