On Fri, May 06, 2011 at 12:54:06PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > The recent conversion of the xfsaild functionality to a work queue > introduced a hard-to-hit log space grant hang. One of the problems > discovered is a target mismatch between the item pushing loop and > the target itself. > > The push trigger checks for the target increasing (i.e. new target > > current) while the push loop only pushes items that have a LSN < > current. As a result, we can get the situation where the push target > is X, the items at the tail of the AIL have LSN X and they don't get > pushed. The push work then completes thinking it is done, and cannot > be restarted until the push target increases to >= X + 1. If the > push target then never increases (because the tail is not moving), > then we never run the push work again and we stall. > > Fix it by making sure log items with a LSN that matches the target > exactly are pushed during the loop. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Looks good, Reviewed-by: Christoph Hellwig <hch@xxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs