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 17:17:03 +0000 (12:17 -0500)
commitea35a20021f8497390d05b93271b4d675516c654
treef15c8f3b48b197430c8cac9238a7fccb20414ee1
parentb223221956675ce8a7b436d198ced974bb388571
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>
fs/xfs/xfs_trans_ail.c