Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
}
if (unlikely(ret == -EIO)) {
+ trans->error = true;
iter->flags |= BTREE_ITER_ERROR;
iter->l[iter->level].b = BTREE_ITER_NOT_END;
goto out;
int bch2_trans_exit(struct btree_trans *trans)
{
- int ret = bch2_trans_unlock(trans);
+ bch2_trans_unlock(trans);
kfree(trans->mem);
if (trans->used_mempool)
kfree(trans->iters);
trans->mem = (void *) 0x1;
trans->iters = (void *) 0x1;
- return ret;
+
+ return trans->error ? -EIO : 0;
}
u8 nr_updates;
u8 size;
unsigned used_mempool:1;
+ unsigned error:1;
unsigned mem_top;
unsigned mem_bytes;