bcachefs: Fix bch2_trans_relock()
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 12 Apr 2021 18:00:07 +0000 (14:00 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:00 +0000 (17:09 -0400)
commitb69ac13cb39176634f1dd924dfabe2e282615d41
treed7a04cfc0e00db86db79ebd938d178217f31834e
parentb906aaddf2144b9f4ebdb8618e8ab1af00a58644
bcachefs: Fix bch2_trans_relock()

The patch that changed bch2_trans_relock() to not look at iter->uptodate
also tried to add an optimization by only having it relock
btree_iter_key() iterators (iterators that are live or have been marked
as keep). But, this wasn't thought through - this pops internal iterator
assertions because on transaction restart, when we're traversing
iterators we traverse all iterators marked as linked, and having
bch2_trans_relock() skip some of those mean that it can skil the
iterator that bch2_btree_iter_traverse_one() is currently traversing.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c