pr_buf(out, "idx %llu", le64_to_cpu(lru->idx));
 }
 
-int bch2_lru_delete(struct btree_trans *trans, u64 id, u64 idx, u64 time)
+int bch2_lru_delete(struct btree_trans *trans, u64 id, u64 idx, u64 time,
+                   struct bkey_s_c orig_k)
 {
        struct btree_iter iter;
        struct bkey_s_c k;
        u64 existing_idx;
+       struct printbuf buf = PRINTBUF;
        int ret = 0;
 
        if (!time)
                goto err;
 
        if (k.k->type != KEY_TYPE_lru) {
+               bch2_bkey_val_to_text(&buf, trans->c, orig_k);
                bch2_trans_inconsistent(trans,
-                       "pointer to nonexistent lru %llu:%llu",
-                       id, time);
+                       "pointer to nonexistent lru %llu:%llu\n%s",
+                       id, time, buf.buf);
                ret = -EIO;
                goto err;
        }
 
        existing_idx = le64_to_cpu(bkey_s_c_to_lru(k).v->idx);
        if (existing_idx != idx) {
+               bch2_bkey_val_to_text(&buf, trans->c, orig_k);
                bch2_trans_inconsistent(trans,
-                       "lru %llu:%llu with wrong backpointer: got %llu, should be %llu",
-                       id, time, existing_idx, idx);
+                       "lru %llu:%llu with wrong backpointer: got %llu, should be %llu\n%s",
+                       id, time, existing_idx, idx, buf.buf);
                ret = -EIO;
                goto err;
        }
        ret = bch2_btree_delete_at(trans, &iter, 0);
 err:
        bch2_trans_iter_exit(trans, &iter);
+       printbuf_exit(&buf);
        return ret;
 }
 
 }
 
 int bch2_lru_change(struct btree_trans *trans, u64 id, u64 idx,
-                   u64 old_time, u64 *new_time)
+                   u64 old_time, u64 *new_time,
+                   struct bkey_s_c k)
 {
        if (old_time == *new_time)
                return 0;
 
-       return  bch2_lru_delete(trans, id, idx, old_time) ?:
+       return  bch2_lru_delete(trans, id, idx, old_time, k) ?:
                bch2_lru_set(trans, id, idx, new_time);
 }
 
 
        .val_to_text    = bch2_lru_to_text,     \
 }
 
-int bch2_lru_delete(struct btree_trans *, u64, u64, u64);
+int bch2_lru_delete(struct btree_trans *, u64, u64, u64, struct bkey_s_c);
 int bch2_lru_set(struct btree_trans *, u64, u64, u64 *);
-int bch2_lru_change(struct btree_trans *, u64, u64, u64, u64 *);
+int bch2_lru_change(struct btree_trans *, u64, u64, u64, u64 *, struct bkey_s_c);
 
 int bch2_check_lrus(struct bch_fs *, bool);