[PATCH 1/3] xfs: check for more work before sleeping in xfssyncd

Christoph Hellwig hch at infradead.org
Thu Mar 4 07:50:50 CST 2010


On Thu, Mar 04, 2010 at 12:46:23PM +1100, Dave Chinner wrote:
> xfssyncd processes a queue of work by detaching the queue and
> then iterating over all the work items. It then sleeps for a
> time period or until new work comes in. If new work is queued
> while xfssyncd is actively processing the detached work queue,
> it will not process that new work until after a sleep timeout
> or the next work event queued wakes it.
> 
> Fix this by checking the work queue again before going to sleep.

Looks good, as does the list_splice cleanup not mentioned in the
changelog.  But I really wonder if we shouldn't just call the
flushing routine directly instead of going through xfssyncd.

The xfssyncd queueing infrastructure is quite a lot of hairy code
just to save a bit of stack space in two places rather high
up in the callchain.


Signed-off-by: Christoph Hellwig <hch at lst.de>




More information about the xfs mailing list