From: Theodore Tso <tytso@mit.edu>
To: "Björn Steinbrink" <B.Steinbrink@gmx.de>
Cc: Junio C Hamano <gitster@pobox.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
git@vger.kernel.org
Subject: Re: [BUG ext4?] Working tree getting out of date "spontaneously"
Date: Fri, 5 Jun 2009 17:38:24 -0400 [thread overview]
Message-ID: <20090605213824.GD6442@mit.edu> (raw)
In-Reply-To: <20090605183538.GE764@atjola.homenet>
On Fri, Jun 05, 2009 at 08:35:38PM +0200, Björn Steinbrink wrote:
> > So the next step is to create an ext3 filesystem with a git repository
> > on it, and then to gradually turn on various ext4 specific features
> > and see when the bug ends up getting replicated. If I had to guess
> > it's the lack (or absense) of the extents feature, but I'll have to
> > run the test and find out for sure.
>
> Yep, seems to be extents. Test script:
OK, I see what's going on. When doing delayed allocation, and we're
not using extents, the call to ext4_get_blocks() which does the
allocation ultimately ends up calling ext4_slice_branch if the inode
is using direct/indirect blocks instead of extents.
ext4_splice_branch() sets ctime. Taking out the this line in
fs/ext4/inode.c:ext4_splice_branch() should fix things:
/* We are done with atomic stuff, now do the rest of housekeeping */
- inode->i_ctime = ext4_current_time(inode);
ext4_mark_inode_dirty(handle, inode);
/* had we spliced it onto indirect block? */
I'm pretty sure we don't need to set i_ctime anywhere else, since we
don't have a similar line in the extents code and we
fs/inode.c:file_update_time() should take care updating i_ctime where
it needs it, but I want to take a closer look to be sure.
- Ted
next prev parent reply other threads:[~2009-06-05 21:41 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-05 12:24 [BUG?] Working tree getting out of date "spontaneously" Björn Steinbrink
2009-06-05 13:14 ` Robin Rosenberg
2009-06-05 13:23 ` Björn Steinbrink
2009-06-05 13:21 ` [BUG ext4?] " Björn Steinbrink
2009-06-05 14:12 ` Björn Steinbrink
2009-06-05 14:47 ` [BUG? ext4] git working " Björn Steinbrink
2009-06-05 14:55 ` [BUG ext4?] Working " Theodore Tso
2009-06-05 15:02 ` Björn Steinbrink
2009-06-05 18:06 ` Theodore Tso
2009-06-05 18:35 ` Björn Steinbrink
2009-06-05 21:38 ` Theodore Tso [this message]
2009-06-05 15:39 ` Linus Torvalds
2009-06-05 16:14 ` Björn Steinbrink
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090605213824.GD6442@mit.edu \
--to=tytso@mit.edu \
--cc=B.Steinbrink@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.