mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 03:59:40 +02:00
bcachefs: Fix unhandled transaction restart in evacuate_bucket()
Generally, releasing a transaction within a transaction restart means an unhandled transaction restart: but this can happen legitimately within the move code, e.g. when bch2_move_ratelimit() tells us to exit before we've retried. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
b09b34499c
commit
69785001c6
|
|
@ -197,6 +197,13 @@ void bch2_moving_ctxt_exit(struct moving_context *ctxt)
|
|||
list_del(&ctxt->list);
|
||||
mutex_unlock(&c->moving_context_lock);
|
||||
|
||||
/*
|
||||
* Generally, releasing a transaction within a transaction restart means
|
||||
* an unhandled transaction restart: but this can happen legitimately
|
||||
* within the move code, e.g. when bch2_move_ratelimit() tells us to
|
||||
* exit before we've retried
|
||||
*/
|
||||
bch2_trans_begin(ctxt->trans);
|
||||
bch2_trans_put(ctxt->trans);
|
||||
memset(ctxt, 0, sizeof(*ctxt));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user