]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
xfs_repair: kick processing thread if ra_count is at limit
authorEric Sandeen <sandeen@redhat.com>
Tue, 30 Oct 2018 21:51:58 +0000 (16:51 -0500)
committerEric Sandeen <sandeen@redhat.com>
Tue, 30 Oct 2018 21:51:58 +0000 (16:51 -0500)
commit7cf2aa1adc94093331f4ad0139c637b392765a0c
tree06f005916a4b90894858688d1b393ef9efd891eb
parentea7be34260bf22f21bd7e430aad894093c7bdec2
xfs_repair: kick processing thread if ra_count is at limit

Zorro hit an xfs_repair hang on a 500T filesystem where
all the prefetch threads were sleeping and nothing progressed.

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 in pf_queuing_worker waits
forever.

Kick the processing thread to avoid this situation.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201173
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/prefetch.c