https://bugzilla.kernel.org/show_bug.cgi?id=201173 Eric Sandeen (sandeen@xxxxxxxxxxx) changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sandeen@xxxxxxxxxxx Assignee|filesystem_xfs@kernel-bugs. |sandeen@xxxxxxxxxxx |kernel.org | --- Comment #1 from Eric Sandeen (sandeen@xxxxxxxxxxx) --- Several hours of debugging later, a simple patch seems to fix this: diff --git a/repair/prefetch.c b/repair/prefetch.c index 9571b24..c9a0748 100644 --- a/repair/prefetch.c +++ b/repair/prefetch.c @@ -768,8 +768,11 @@ pf_queuing_worker( * might get stuck on a buffer that has been locked * and added to the I/O queue but is waiting for * the thread to be woken. + * Start processing as well, in case everything so + * far was already prefetched and the queue is empty. */ pf_start_io_workers(args); + pf_start_processing(args); sem_wait(&args->ra_count); } but it still feels like a slightly odd fix, will give it more thought. The problem is that if every buffer we tried to read ahead in phase6 was already up to date, pf_start_io_workers has no effect; there is no io to do, and the sem_wait waits forever. -- You are receiving this mail because: You are watching the assignee of the bug.