One more thing. Why do you need EXT4_STATE_EXT_TRUNC? The only place which tests it in any kind of real way is ext4_ext_truncate_extend_restart(), and it is only called by one function, ext4_ext_rm_leaf(), and *it* is only called in one place, inside ext4_ext_remove_space(), and *it* surronds the call with ext4_set_inode_state(inode, EXT4_STATE_EXT_TRUNC) and ext4_clear_inode_state(inode, EXT4_STATE_EXT_TRUNC). And while a truncate is happening, no other block allocation can happen, so the test in ext4_ext_map_blocks() doesn't seem to do much. (It only clears STATE_EXT_TRUNC if it is set and if the flags EXT4_GET_BLOCKS_CREATE is set. I'm not sure what the point of that is, either.) - Ted -- 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