bcachefs: Do not allow no fail lock request to fail
authorAlan Huang <mmpgouride@gmail.com>
Thu, 10 Oct 2024 13:21:50 +0000 (21:21 +0800)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 14 Jan 2025 15:45:08 +0000 (10:45 -0500)
commit0ef9ab34f442f7236b5a84a6691959c67639f8b9
tree0f1c6b8c1b61af6a4de292e83517ce92837bf09e
parentcdc419dbf286eeaabb361d5cf5cee2cb566b6f5f
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>
fs/bcachefs/btree_locking.c