All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zheng Liu <gnehzuil.liu@gmail.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-btrfs@vger.kernel.org, linux-ext4@vger.kernel.org,
	mfasheh@suse.com, jlbec@evilplan.org, cluster-devel@redhat.com,
	jack@suse.cz, swhiteho@redhat.com, tytso@mit.edu
Subject: Re: fallocate vs O_(D)SYNC
Date: Wed, 16 Nov 2011 19:28:16 +0800	[thread overview]
Message-ID: <20111116112816.GA23218@gmail.com> (raw)
In-Reply-To: <20111116084256.GA22963@infradead.org>

On Wed, Nov 16, 2011 at 03:42:56AM -0500, Christoph Hellwig wrote:
> It seems all filesystems but XFS ignore O_SYNC for fallocate, and never
> make sure the size update transaction made it to disk.
> 
> Given that a fallocate without FALLOC_FL_KEEP_SIZE very much is a data
> operation (it adds new blocks that return zeroes) that seems like a
> fairly nasty surprise for O_SYNC users.

Hi all,

This patch should be fix this problem in ext4.

From: Zheng Liu <wenqing.lz@taobao.com>

Make sure the transaction to be commited if O_(D)SYNC flag is set in
ext4_fallocate().

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
---
 fs/ext4/extents.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 61fa9e1..f47e3ad 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4356,6 +4356,8 @@ retry:
                        ret = PTR_ERR(handle);
                        break;
                }
+               if (file->f_flags & O_SYNC)
+                       ext4_handle_sync(handle);
                ret = ext4_map_blocks(handle, inode, &map, flags);
                if (ret <= 0) {
 #ifdef EXT4FS_DEBUG
-- 
1.7.4.1


> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      parent reply	other threads:[~2011-11-16 11:28 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-16  8:42 [Cluster-devel] fallocate vs O_(D)SYNC Christoph Hellwig
2011-11-16  8:42 ` Christoph Hellwig
2011-11-16  9:43 ` [Cluster-devel] " Steven Whitehouse
2011-11-16  9:43   ` Steven Whitehouse
2011-11-16 10:54   ` Jan Kara
2011-11-16 10:54     ` Jan Kara
2011-11-16 11:20     ` Steven Whitehouse
2011-11-16 11:20       ` Steven Whitehouse
2011-11-16 12:45     ` Christoph Hellwig
2011-11-16 12:45       ` Christoph Hellwig
2011-11-16 13:39       ` Jan Kara
2011-11-16 13:39         ` Jan Kara
2011-11-16 13:42         ` Christoph Hellwig
2011-11-16 13:42           ` Christoph Hellwig
2011-11-16 15:57           ` Jan Kara
2011-11-16 15:57             ` Jan Kara
2011-11-16 16:16             ` Christoph Hellwig
2011-11-16 16:16               ` Christoph Hellwig
2011-11-16 16:18             ` Chris Mason
2011-11-16 19:35               ` Mark Fasheh
2011-11-16 20:03                 ` Mark Fasheh
2011-11-17 10:16                   ` Joel Becker
2011-11-17 10:16                     ` Joel Becker
2011-11-16 20:03                 ` [Cluster-devel] " Mark Fasheh
2011-11-18 12:09             ` Steven Whitehouse
2011-11-18 12:09               ` Steven Whitehouse
2011-11-16 11:28 ` Zheng Liu [this message]

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=20111116112816.GA23218@gmail.com \
    --to=gnehzuil.liu@gmail.com \
    --cc=cluster-devel@redhat.com \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=jlbec@evilplan.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=mfasheh@suse.com \
    --cc=swhiteho@redhat.com \
    --cc=tytso@mit.edu \
    /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.