xfs
[Top] [All Lists]

Re: [PATCH, RFC] Delayed logging of file sizes

To: David Chinner <dgc@xxxxxxx>
Subject: Re: [PATCH, RFC] Delayed logging of file sizes
From: Lachlan McIlroy <lachlan@xxxxxxx>
Date: Mon, 26 Nov 2007 12:29:36 +1100
Cc: xfs-dev <xfs-dev@xxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20071126011044.GG114266761@sgi.com>
References: <47467B87.2000000@sgi.com> <20071125225928.GE114266761@sgi.com> <474A112D.2040006@sgi.com> <20071126011044.GG114266761@sgi.com>
Reply-to: lachlan@xxxxxxx
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 2.0.0.9 (X11/20071031)
David Chinner wrote:
On Mon, Nov 26, 2007 at 11:19:57AM +1100, Lachlan McIlroy wrote:
David Chinner wrote:
On Fri, Nov 23, 2007 at 06:04:39PM +1100, Lachlan McIlroy wrote:
The easy solution is to log everything so that log replay doesn't need
to check if the on-disk version is newer - it can just replay the log.
But logging everything would cause too much log traffic so this patch
is a compromise and it logs a transaction before we flush an inode to
disk only if it has changes that have not yet been logged.
The problem with this is that the inode will be marked dirty during the
transaction, so we'll never be able to clean an inode if we issue a
transaction during inode writeback.
Ah, yeah, good point.  I wrote this patch back before that "dirty inode
on transaction" patch went in.

Wouldn't have made aany difference - the inode woul dbe marked dirty at transaction completion...

For this transaction though the changes
to the inode have already been made (ie when we set i_update_core and
called mark_inode_dirty_sync()) so there is no need to dirty it in this
transaction.  I'll keep digging.  Thanks.

I wouldn't worry too much about this problem right now - I'm working on moving the dirty state into the inode radix trees so i_update_core might even go away completely soon....


Which problem? Just the bit about dirtying the inode or will your changes allow us to log all inode changes?

What's the motivation for moving the dirty state?


<Prev in Thread] Current Thread [Next in Thread>