generic_file_fsync has been updated to issue a flush for
older filesystems.

This patch tests for barrier flag in ext4 mount flags
and calls the right function.

Suggested-by: Jan Kara <j...@suse.cz>
Suggested-by: Christoph Hellwig <h...@infradead.org>
Cc: Jan Kara <j...@suse.cz>
Cc: Christoph Hellwig <h...@infradead.org>
Cc: Alexander Viro <v...@zeniv.linux.org.uk>
Cc: "Theodore Ts'o" <ty...@mit.edu>
Cc: Andrew Morton <a...@linux-foundation.org>
Signed-off-by: Fabian Frederick <f...@skynet.be>
---
 fs/ext4/fsync.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c
index a8bc47f..fa82c0a 100644
--- a/fs/ext4/fsync.c
+++ b/fs/ext4/fsync.c
@@ -108,6 +108,10 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t 
end, int datasync)
 
        if (!journal) {
                ret = generic_file_fsync(file, start, end, datasync);
+               if (test_opt(inode->i_sb, BARRIER))
+                       ret = generic_file_fsync(file, start, end, datasync);
+               else
+                       ret = __generic_file_fsync(file, start, end, datasync);
                if (!ret && !hlist_empty(&inode->i_dentry))
                        ret = ext4_sync_parent(inode);
                goto out;
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to