Re: fallocate vs O_(D)SYNC
From: Joel Becker <jlbec@evilplan.org>
Date: 2011-11-17 10:16:36
Also in:
linux-btrfs
On Wed, Nov 16, 2011 at 12:03:10PM -0800, Mark Fasheh wrote:
On Wed, Nov 16, 2011 at 11:35:40AM -0800, Mark Fasheh wrote:quoted
quoted
We should do it per FS though, I'll patch up btrfs.I agree about doing it per FS. Ocfs2 just needs a one-liner to mark the journal transaction as synchronous.Joel, here's an (untested) patch to fix this in Ocfs2. --Mark -- Mark Fasheh From: Mark Fasheh <redacted> ocfs2: honor O_(D)SYNC flag in fallocate We need to sync the transaction which updates i_size if the file is marked as needing sync semantics. Signed-off-by: Mark Fasheh <redacted>
Makes sense to me. Joel
quoted hunk
--- fs/ocfs2/file.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index de4ea1a..cac00b4 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c@@ -1950,6 +1950,9 @@ static int __ocfs2_change_file_space(struct file *file, struct inode *inode, if (ret < 0) mlog_errno(ret); + if (file->f_flags & O_SYNC) + handle->h_sync = 1; + ocfs2_commit_trans(osb, handle); out_inode_unlock:-- 1.7.6
-- Life's Little Instruction Book #347 "Never waste the oppourtunity to tell someone you love them." http://www.jlbec.org/ jlbec@evilplan.org