]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bcachefs: fix hung task timeout in journal read
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 4 May 2025 22:46:16 +0000 (18:46 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 5 May 2025 18:21:28 +0000 (14:21 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/journal_io.c

index 63cdf885c9e2a43030ffca5802c553d6ee9dd50f..ded18a94ed021e58a07a0aa86f189db33a6b5894 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <linux/ioprio.h>
 #include <linux/string_choices.h>
+#include <linux/sched/sysctl.h>
 
 void bch2_journal_pos_from_member_info_set(struct bch_fs *c)
 {
@@ -1262,7 +1263,8 @@ int bch2_journal_read(struct bch_fs *c,
                        degraded = true;
        }
 
-       closure_sync(&jlist.cl);
+       while (closure_sync_timeout(&jlist.cl, sysctl_hung_task_timeout_secs * HZ / 2))
+               ;
 
        if (jlist.ret)
                return jlist.ret;