[PATCH 1/2] xfs: unlock items before allowing the CIL to commit

Christoph Hellwig hch at infradead.org
Tue Jun 8 20:11:52 CDT 2010


On Fri, Jul 30, 2010 at 08:55:45AM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
> 
> When we commit a transaction using delayed logging, we need to
> unlock the items in the transaciton before we unlock the CIL context
> and allow it to be checkpointed. If we unlock them after we release
> the CIl context lock, the CIL can checkpoint and complete before
> we free the log items. This breaks stale buffer item unlock and
> unpin processing as there is an implicit assumption that the unlock
> will occur before the unpin.
> 
> Also, some log items need to store the LSN of the transaction commit
> in the item (inodes and EFIs) and so can race with other transaction
> completions if we don't prevent the CIL from checkpointing before
> the unlock occurs.

Looks good.  It also avoid keeping the items around over the CIL push,
which should help with memory consumption under load.

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




More information about the xfs mailing list