summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_update_leaf.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/btree_update_leaf.c')
-rw-r--r--libbcachefs/btree_update_leaf.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/libbcachefs/btree_update_leaf.c b/libbcachefs/btree_update_leaf.c
index 112ac7ca..131fd4c1 100644
--- a/libbcachefs/btree_update_leaf.c
+++ b/libbcachefs/btree_update_leaf.c
@@ -437,17 +437,6 @@ bch2_trans_commit_write_locked(struct btree_trans *trans,
marking = true;
}
- if (marking) {
- percpu_down_read(&c->mark_lock);
- }
-
- /* Must be called under mark_lock: */
- if (marking && trans->fs_usage_deltas &&
- !bch2_replicas_delta_list_marked(c, trans->fs_usage_deltas)) {
- ret = BTREE_INSERT_NEED_MARK_REPLICAS;
- goto err;
- }
-
/*
* Don't get journal reservation until after we know insert will
* succeed:
@@ -456,7 +445,7 @@ bch2_trans_commit_write_locked(struct btree_trans *trans,
ret = bch2_trans_journal_res_get(trans,
JOURNAL_RES_GET_NONBLOCK);
if (ret)
- goto err;
+ return ret;
} else {
trans->journal_res.seq = c->journal.replay_journal_seq;
}
@@ -484,22 +473,19 @@ bch2_trans_commit_write_locked(struct btree_trans *trans,
i->k->k.version = MAX_VERSION;
}
+ if (trans->fs_usage_deltas &&
+ bch2_trans_fs_usage_apply(trans, trans->fs_usage_deltas))
+ return BTREE_INSERT_NEED_MARK_REPLICAS;
+
trans_for_each_update(trans, i)
if (BTREE_NODE_TYPE_HAS_MEM_TRIGGERS & (1U << i->bkey_type))
bch2_mark_update(trans, i->path, i->k, i->flags);
- if (marking && trans->fs_usage_deltas)
- bch2_trans_fs_usage_apply(trans, trans->fs_usage_deltas);
-
if (unlikely(c->gc_pos.phase))
bch2_trans_mark_gc(trans);
trans_for_each_update(trans, i)
do_btree_insert_one(trans, i);
-err:
- if (marking) {
- percpu_up_read(&c->mark_lock);
- }
return ret;
}