From: Christoph Hellwig <hch@infradead.org>
To: Jan Kara <jack@suse.cz>
Cc: Christoph Hellwig <hch@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Evgeniy Polyakov <zbr@ioremap.net>,
ocfs2-devel@oss.oracle.com, Joel Becker <joel.becker@oracle.com>,
Felix Blyakher <felixb@sgi.com>,
xfs@oss.sgi.com, Anton Altaparmakov <aia21@cantab.net>,
linux-ntfs-dev@lists.sourceforge.net,
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
linux-ext4@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 07/17] vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode
Date: Thu, 20 Aug 2009 12:27:29 -0400 [thread overview]
Message-ID: <20090820162729.GA24659@infradead.org> (raw)
In-Reply-To: <20090820121531.GC16486@duck.novell.com>
On Thu, Aug 20, 2009 at 02:15:31PM +0200, Jan Kara wrote:
> On Wed 19-08-09 12:26:38, Christoph Hellwig wrote:
> > Looks good to me. Eventually we should use those SYNC_ flags also all
> > through the fsync codepath, but I'll see if I can incorporate that in my
> > planned fsync rewrite.
> Yes, I thought I'll leave that for later. BTW it should be fairly easy to
> teach generic_sync_file() to do fdatawait() before calling ->fsync() if the
> filesystem sets some flag in inode->i_mapping (or somewhere else) as is
> needed for XFS, btrfs, etc.
Maybe you can help brain storming, but I still can't see any way in that
the
- write data
- write inode
- wait for data
actually is a benefit in terms of semantics (I agree that it could be
faster in theory, but even that is debatable with todays seek latencies
in disks)
Think about a simple non-journaling filesystem like ext2:
(1) block get allocated during ->write before putting data in
- this dirties the inode because we update i_block/i_size/etc
(2) we call fsync (or the O_SNC handling code for that matter)
- we start writeout of the data, which takes forever because the
file is very large
- then we write out the inode, including the i_size/i_blocks
update
- due to some reason this gets reordered before the data writeout
finishes (without that happening there would be no benefit to
this ordering anyway)
(3) no we call filemap_fdatawait to wait for data I/O to finish
Now the system crashes between (2) and (3). After that we we do have
stale data in the inode in the area not written yet.
Is there some case between that simple filesystem and the i_size update
from I/O completion handler in XFS/ext4 where this behaviour actually
buys us anything? Any ext3 magic maybe?
next prev parent reply other threads:[~2009-08-20 16:27 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1250697884-22288-1-git-send-email-jack@suse.cz>
2009-08-19 16:04 ` [PATCH 07/17] vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode Jan Kara
2009-08-19 16:26 ` Christoph Hellwig
2009-08-20 12:15 ` Jan Kara
2009-08-20 16:27 ` Christoph Hellwig [this message]
2009-08-21 15:23 ` Jan Kara
2009-08-21 15:32 ` Christoph Hellwig
2009-08-21 15:48 ` Jan Kara
2009-08-26 18:22 ` Christoph Hellwig
2009-08-27 0:04 ` Christoph Hellwig
2009-08-19 16:04 ` [PATCH 08/17] ext2: Update comment about generic_osync_inode Jan Kara
2009-08-19 16:04 ` [PATCH 09/17] ext3: Remove syncing logic from ext3_file_write Jan Kara
2009-08-19 16:04 ` [PATCH 10/17] ext4: Remove syncing logic from ext4_file_write Jan Kara
[not found] <1250874001-15483-1-git-send-email-jack@suse.cz>
2009-08-21 16:59 ` [PATCH 07/17] vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode Jan Kara
[not found] <1250875447-15622-1-git-send-email-jack@suse.cz>
2009-08-21 17:23 ` Jan Kara
2009-08-27 17:35 ` Christoph Hellwig
2009-08-30 16:35 ` Jamie Lokier
2009-08-30 16:39 ` Christoph Hellwig
2009-08-30 17:29 ` Jamie Lokier
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=20090820162729.GA24659@infradead.org \
--to=hch@infradead.org \
--cc=aia21@cantab.net \
--cc=felixb@sgi.com \
--cc=hirofumi@mail.parknet.co.jp \
--cc=jack@suse.cz \
--cc=joel.becker@oracle.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-ntfs-dev@lists.sourceforge.net \
--cc=ocfs2-devel@oss.oracle.com \
--cc=tytso@mit.edu \
--cc=xfs@oss.sgi.com \
--cc=zbr@ioremap.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).