Merge tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi
[deliverable/linux.git] / fs / ext4 / fsync.c
index 8850254136ae31fea8c4398a43a21fcb0d21f9cd..5c4372512ef7139f722f60000e8550d27e2820d3 100644 (file)
@@ -106,9 +106,11 @@ 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);
+               ret = __generic_file_fsync(file, start, end, datasync);
                if (!ret && !hlist_empty(&inode->i_dentry))
                        ret = ext4_sync_parent(inode);
+               if (test_opt(inode->i_sb, BARRIER))
+                       goto issue_flush;
                goto out;
        }
 
@@ -140,6 +142,7 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
                needs_barrier = true;
        ret = jbd2_complete_transaction(journal, commit_tid);
        if (needs_barrier) {
+       issue_flush:
                err = blkdev_issue_flush(inode->i_sb->s_bdev, GFP_KERNEL, NULL);
                if (!ret)
                        ret = err;
This page took 0.026769 seconds and 5 git commands to generate.