On Fri, 6 Jun 2014, akpm@xxxxxxxxxxxxxxxxxxxx wrote: > Date: Fri, 06 Jun 2014 12:51:50 -0700 > From: akpm@xxxxxxxxxxxxxxxxxxxx > To: tytso@xxxxxxx > Cc: linux-ext4@xxxxxxxxxxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx, fabf@xxxxxxxxx, > hch@xxxxxxxxxxxxx, jack@xxxxxxx, viro@xxxxxxxxxxxxxxxxxx > Subject: [patch 1/1] fs/ext4/fsync.c: generic_file_fsync call based on barrier > flag > > From: Fabian Frederick <fabf@xxxxxxxxx> > Subject: fs/ext4/fsync.c: generic_file_fsync call based on barrier flag > > 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. The patch itself looks good. Reviewed-by: Lukas Czerner <lczerner@xxxxxxxxxx> Note that the actual generic_file_fsync change fixes a real bug in ext4 where we would _not_ send a flush on sync if we have file system without journal. Ted, it would be useful to mention that in the commit description along with the commit id: ac13a829f6adb674015ab399594c089990104af7 fs/libfs.c: add generic data flush to fsync Thanks! -Lukas > > Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx> > Suggested-by: Jan Kara <jack@xxxxxxx> > Suggested-by: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: "Theodore Ts'o" <tytso@xxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > > fs/ext4/fsync.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff -puN fs/ext4/fsync.c~fs-ext4-fsyncc-generic_file_fsync-call-based-on-barrier-flag fs/ext4/fsync.c > --- a/fs/ext4/fsync.c~fs-ext4-fsyncc-generic_file_fsync-call-based-on-barrier-flag > +++ a/fs/ext4/fsync.c > @@ -107,7 +107,10 @@ int ext4_sync_file(struct file *file, lo > } > > 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; > _ > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html