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)
commit9e7004e741de0b2daabbbadafbaf11ff1a94e00c
tree86ed6be6bd95114e6bf3a2680d21d35dcd0a335e
parent228d62dd3f74734b9801c789b5addc57fdfc208f
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