mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
bcachefs: Do not allow no fail lock request to fail
If the transaction chose itself as a victim before and restarted, it might request a no fail lock request this time. But it might be added to others' lock graph and be chose as the victim again, it's no longer safe without additional check. We can also convert the cycle detector to be fully RCU-based to solve that unsoundness, but the latency added to trans_put and additional memory required may not worth it. Signed-off-by: Alan Huang <mmpgouride@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
cdc419dbf2
commit
0ef9ab34f4
|
|
@ -281,7 +281,7 @@ int bch2_check_for_deadlock(struct btree_trans *trans, struct printbuf *cycle)
|
|||
|
||||
g.nr = 0;
|
||||
|
||||
if (trans->lock_must_abort) {
|
||||
if (trans->lock_must_abort && !trans->lock_may_not_fail) {
|
||||
if (cycle)
|
||||
return -1;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user