[Bug 201173] [xfstests xfs/137]: xfs_repair hang when it trying to repair a 500t xfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux