diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index ae3804f36535..5e00f39c09e1 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -2193,8 +2193,11 @@ ext4_ext_insert_extent(handle_t *handle, struct inode *inode, goto errout; err = ext4_ext_dirty(handle, inode, path + path->p_depth); - if (err) + if (err) { + if (err == -EFSCORRUPTED && !ext4_has_feature_huge_file(inode->i_sb)) + ext4_ext_remove_space(inode, newext->ee_block, newext->ee_block); goto errout; + } return path;