Re: [PATCH 07/12] repair: fix another ABBA deadlock in inode prefetching

Dave Chinner
2011-12-13T02:35:18Z

On Fri, Dec 02, 2011 at 12:46:26PM -0500, Christoph Hellwig wrote:
> The inode prefetching code has a fixed limit of inodes that might are
> submitted at a time. Unfortunately the buffers for them get locked
> once the prefetching starts. That way the threads processing the inode
> might get stuck on buffer locked, but not submitted for reading yet.
>
> Fix this by kicking the queue as soon as we would have to wait on the
> ra_count semaphore.
>
> Reported-by: Arkadiusz Mi??kiewicz <arekm@maven.pl>
> Tested-by: Arkadiusz Mi??kiewicz <arekm@maven.pl>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Looks safe - I can't think up a scenario that would deadlock on
the second sem_wait call...

Reviewed-by: Dave Chinner <dchinner@redhat.com>

--
Dave Chinner
david@fromorbit.com