Christoph Hellwig wrote: > We need to flush the write cache unconditionally in ->fsync, otherwise > writes into already allocated blocks can get lost. Writes into fully > allocated files are very common when using disk images for > virtualization, and without this fix can easily lose data after > an fdatasync, which is the typical implementation for a cache flush on > the virtual drive. > > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Fixing my old commit, I guess ;) Seems right to me Acked-by: Eric Sandeen <sandeen@xxxxxxxxxx> > Index: linux-2.6/fs/ext4/fsync.c > =================================================================== > --- linux-2.6.orig/fs/ext4/fsync.c > +++ linux-2.6/fs/ext4/fsync.c > @@ -92,9 +92,9 @@ int ext4_sync_file(struct file *file, st > .nr_to_write = 0, /* sys_fsync did this */ > }; > ret = sync_inode(inode, &wbc); > - if (journal && (journal->j_flags & JBD2_BARRIER)) > - blkdev_issue_flush(inode->i_sb->s_bdev, NULL); > } > out: > + if (journal && (journal->j_flags & JBD2_BARRIER)) > + blkdev_issue_flush(inode->i_sb->s_bdev, NULL); > return ret; > } > -- > 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