On Mon, Feb 25, 2013 at 08:07:40PM +0400, Dmitry Monakhov wrote: > Derived from Jan's patch:http://permalink.gmane.org/gmane.comp.file-systems.ext4/36470 > > Merging of uninitialized extents creates all sorts of interesting race > possibilities when writeback / DIO races with fallocate. Thus > ext4_convert_unwritten_extents_endio() has to deal with a case where > extent to be converted needs to be split out first. That isn't nice > for two reasons: > > 1) It may need allocation of extent tree block so ENOSPC is possible. > 2) It complicates end_io handling code > > So we disable merging of uninitialized extents which allows us to simplify > the code. Extents will get merged after they are converted to initialized > ones. > > Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> After applied this patch, xfstests #275 will print a warning message. kernel:EXT4-fs (sda2): failed to convert unwritten extents to written extents -- potential data loss! (inode 13, offset 1537212416, size 524288, error -28) But IMHO we don't need to worry about it because it is hard to be trigger. I hit it because I run xfstests #275 several times. So just a note here. Regards, - Zheng -- 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