bcachefs: Fix bch2_trans_put()
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 19 Jun 2024 19:47:44 +0000 (15:47 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 19 Jun 2024 22:34:18 +0000 (18:34 -0400)
commita56da69799bd5f0c72bdc0fb64c3e3d8c1b1bb36
treeb12bf8cb4b964858a477591317dfeebee530c6ce
parent0a2a507d404eebbc168e8b1264edf0ac8c6047b4
bcachefs: Fix bch2_trans_put()

reference: https://github.com/koverstreet/bcachefs/issues/692

trans->ref is the reference used by the cycle detector, which walks
btree_trans objects of other threads to walk the graph of held locks and
issue wakeups when an abort is required.

We have to wait for the ref to go to 1 before freeing trans->paths or
clearing trans->locking_wait.task.

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