]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: exit AIL push work correctly when AIL is empty
authorDave Chinner <dchinner@redhat.com>
Fri, 6 May 2011 02:54:05 +0000 (02:54 +0000)
committerAlex Elder <aelder@sgi.com>
Mon, 9 May 2011 23:35:03 +0000 (18:35 -0500)
commitab84192a20323132af102fa15c7425ac59558511
tree86ed6be6bd95114e6bf3a2680d21d35dcd0a335e
parenta00aef19b5f7c71d6761448ac1b52cbfb51b09b1
xfs: exit AIL push work correctly when AIL is empty

The recent conversion of the xfsaild functionality to a work queue
introduced a hard-to-hit log space grant hang. The main cause is a
regression where a work exit path fails to clear the PUSHING state
and recheck the target correctly.

Make both exit paths do the same PUSHING bit clearing and target
checking when the "no more work to be done" condition is hit.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
(cherry picked from commit ea35a20021f8497390d05b93271b4d675516c654)
fs/xfs/xfs_trans_ail.c