]> 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)
commitc2304fcebe875b555f27d0804c5a67f93b9cc8a5
tree86ed6be6bd95114e6bf3a2680d21d35dcd0a335e
parentf34f52fcd9b99e82bdabf1bdef8c138a61181ddd
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