Dmitri Monakhov <dmonakhov@xxxxxxxxxx> writes: > We need to remove block that was allocated in generic_file_direct_write() > if we fail. We have to do it *regardless* to blocksize. At least ext2, > ext3 and reiserfs interpret (i_size < biggest block) condition as error. > Fsck will complain about wrong i_size. Then fsck will fix the error > by changing i_size according to the biggest block. This is bad because > this blocks contain gurbage from previous write attempt. And result in > data corruption. > > In order to call vmtruncate() we have to hold host->i_mutex. This is true > for generic_file_aio_write(). In fact occasionally it is also true for all > generic_file_aio_write_nolock() callers except blockdev. But this situation > may change someday. This patch fix only generic_write_aio_write() case. > BTW: update generic_file_direct_write's comment with currently outdated. Do you have a test case for this, by any chance? Cheers, Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html