static void bch2_trans_revalidate_updates_in_node(struct btree_trans *trans, struct btree *b)
 {
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i;
 
        trans_for_each_update(trans, i)
                if (!i->cached &&
 noinline __cold
 void bch2_trans_updates_to_text(struct printbuf *buf, struct btree_trans *trans)
 {
-       struct btree_insert_entry *i;
-
        prt_printf(buf, "transaction updates for %s journal seq %llu",
               trans->fn, trans->journal_res.seq);
        prt_newline(buf);
 static noinline
 struct bkey_i *__bch2_btree_trans_peek_updates(struct btree_iter *iter)
 {
-       struct btree_insert_entry *i;
        struct bkey_i *ret = NULL;
 
        trans_for_each_update(iter->trans, i) {
 void bch2_trans_put(struct btree_trans *trans)
        __releases(&c->btree_trans_barrier)
 {
-       struct btree_insert_entry *i;
        struct bch_fs *c = trans->c;
        struct btree_transaction_stats *s = btree_trans_stats(trans);
 
 
 
 static inline int bch2_trans_lock_write(struct btree_trans *trans)
 {
-       struct btree_insert_entry *i;
-
        EBUG_ON(trans->write_locked);
 
        trans_for_each_update(trans, i) {
 static inline void bch2_trans_unlock_write(struct btree_trans *trans)
 {
        if (likely(trans->write_locked)) {
-               struct btree_insert_entry *i;
-
                trans_for_each_update(trans, i)
                        if (!same_leaf_as_prev(trans, i))
                                bch2_btree_node_unlock_write_inlined(trans, i->path,
 btree_key_can_insert_cached_slowpath(struct btree_trans *trans, unsigned flags,
                                     struct btree_path *path, unsigned new_u64s)
 {
-       struct btree_insert_entry *i;
        struct bkey_cached *ck = (void *) path->l[0].b;
        struct bkey_i *new_k;
        int ret;
 {
        struct bch_fs *c = trans->c;
        struct bkey_cached *ck = (void *) path->l[0].b;
-       struct btree_insert_entry *i;
        unsigned new_u64s;
        struct bkey_i *new_k;
 
 
 static int bch2_trans_commit_run_triggers(struct btree_trans *trans)
 {
-       struct btree_insert_entry *i = NULL, *btree_id_start = trans->updates;
+       struct btree_insert_entry *btree_id_start = trans->updates;
        unsigned btree_id = 0;
        int ret = 0;
 
 static noinline int bch2_trans_commit_run_gc_triggers(struct btree_trans *trans)
 {
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i;
        int ret = 0;
 
        trans_for_each_update(trans, i) {
                               unsigned long trace_ip)
 {
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i;
        struct btree_trans_commit_hook *h;
        unsigned u64s = 0;
        int ret;
 
 static noinline void bch2_drop_overwrites_from_journal(struct btree_trans *trans)
 {
-       struct btree_insert_entry *i;
-
        trans_for_each_update(trans, i)
                bch2_journal_key_overwritten(trans->c, i->btree_id, i->level, i->k->k.p);
 }
                                       unsigned long trace_ip)
 {
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i;
        int ret = 0, u64s_delta = 0;
 
        trans_for_each_update(trans, i) {
 do_bch2_trans_commit_to_journal_replay(struct btree_trans *trans)
 {
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i;
        int ret = 0;
 
        trans_for_each_update(trans, i) {
 
 int __bch2_trans_commit(struct btree_trans *trans, unsigned flags)
 {
+       struct btree_insert_entry *errored_at = NULL;
        struct bch_fs *c = trans->c;
-       struct btree_insert_entry *i = NULL;
        int ret = 0;
 
        if (!trans->nr_updates &&
                        goto err;
        }
 retry:
+       errored_at = NULL;
        bch2_trans_verify_not_in_restart(trans);
        if (likely(!(flags & BCH_TRANS_COMMIT_no_journal_res)))
                memset(&trans->journal_res, 0, sizeof(trans->journal_res));
 
-       ret = do_bch2_trans_commit(trans, flags, &i, _RET_IP_);
+       ret = do_bch2_trans_commit(trans, flags, &errored_at, _RET_IP_);
 
        /* make sure we didn't drop or screw up locks: */
        bch2_trans_verify_locks(trans);
 
        return ret;
 err:
-       ret = bch2_trans_commit_error(trans, flags, i, ret, _RET_IP_);
+       ret = bch2_trans_commit_error(trans, flags, errored_at, ret, _RET_IP_);
        if (ret)
                goto out;