+ ret = bch2_trans_journal_res_get(trans, JOURNAL_RES_GET_NONBLOCK);
+ if (ret)
+ goto out;
+ }
+
+ if (!(trans->flags & BTREE_INSERT_JOURNAL_REPLAY)) {
+ if (journal_seq_verify(c))
+ trans_for_each_update(trans, i)
+ i->k->k.version.lo = trans->journal_res.seq;
+ else if (inject_invalid_keys(c))
+ trans_for_each_update(trans, i)
+ i->k->k.version = MAX_VERSION;
+ }
+
+ trans_for_each_update_iter(trans, i)
+ if (update_has_triggers(trans, i) &&
+ !update_triggers_transactional(trans, i))
+ bch2_mark_update(trans, i, fs_usage, mark_flags);
+
+ if (fs_usage && trans->fs_usage_deltas)
+ bch2_replicas_delta_list_apply(c, fs_usage,
+ trans->fs_usage_deltas);
+
+ if (fs_usage)
+ bch2_trans_fs_usage_apply(trans, fs_usage);
+
+ if (likely(!(trans->flags & BTREE_INSERT_NOMARK)) &&
+ unlikely(c->gc_pos.phase))
+ trans_for_each_update_iter(trans, i)
+ if (gc_visited(c, gc_pos_btree_node(i->iter->l[0].b)))
+ bch2_mark_update(trans, i, NULL,
+ mark_flags|
+ BCH_BUCKET_MARK_GC);
+
+ trans_for_each_update(trans, i)
+ do_btree_insert_one(trans, i);