We're getting away from relying on iter->uptodate - this changes
bch2_trans_relock() to more directly specify which iterators should be
relocked.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
bool bch2_trans_relock(struct btree_trans *trans)
{
struct btree_iter *iter;
- bool ret = true;
trans_for_each_iter(trans, iter)
- if (iter->uptodate == BTREE_ITER_NEED_RELOCK)
- ret &= bch2_btree_iter_relock(iter, true);
-
- return ret;
+ if (btree_iter_keep(trans, iter) &&
+ !bch2_btree_iter_relock(iter, true))
+ return false;
+ return true;
}
void bch2_trans_unlock(struct btree_trans *trans)