Namjae Jeon <linkinjeon@xxxxxxxxx> writes: >>If above is correct, right implement to change get_block(). > Now when we try to write in the fallocated region ( with keep size) in > the fat_write_begin when it is called first time it checks that the > mismatch is present between the mmu_private and mmu_actual , and hence > zero out the region ; since buffer_new is not set for fallocated > region by fat_get_block , we explicitly zero out the lseeked region > using "fat_zero_falloc_area" and normal write occurs beyond that , and > i_size is updated accordingly , and as such there is no need to move > the code to fat_get_block . OK. So, like I said, you *changed* the behavior of get_block() via fallocate() change, right? (I think, now, you noticed fat_get_block() was changed.) Since you changed the behavior of get_block(), you had to hack write_begin(). (IMO, that patch is dirty hack to fix write_begin() path only) Likewise, you have to prove all callers of get_block() must work collectedly with that change. What happen on direct I/O, bmap ioctl, etc.? Well, anyway, please fix the root cause of change of behavior. Thanks. -- OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> -- 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