Re: [syzbot] [bcachefs?] INFO: task hung in bch2_journal_reclaim_thread (2)

From: Edward Adam Davis
Date: Sat Oct 26 2024 - 00:55:46 EST


avoid race conditions when journal's reclaim and flush acquire reclaim_lock

#syz test

diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c
index ace291f175dd..58a745c72aac 100644
--- a/fs/bcachefs/journal_reclaim.c
+++ b/fs/bcachefs/journal_reclaim.c
@@ -731,7 +731,7 @@ static int bch2_journal_reclaim_thread(void *arg)

j->last_flushed = jiffies;

- while (!ret && !kthread_should_stop()) {
+ while (!j->flush_in_progress && !ret && !kthread_should_stop()) {
bool kicked = j->reclaim_kicked;

j->reclaim_kicked = false;