Hello, while looking into the ext4 code I spotted one thing which I think is a bug introduced by extent status tree code. The problem is that ext4_map_blocks() checks extent status tree and if the extent is found, it doesn't call into ext4_ext_map_blocks(). However ext4_ext_direct_IO() expects that if the extent DIO is done to is unwritten, EXT4_IO_END_UNWRITTEN flag gets set in the io_end (or inode) flags and that happens only in ext4_ext_map_blocks(). The easiest fix seems to be to move setting of flags from ext4_ext_map_blocks() up into ext4_map_blocks() (or maybe even _ext4_get_block()). What do you think? Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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