diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index ae3804f36535..0bed3379f2d2 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -4458,19 +4458,13 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode, if (IS_ERR(path)) { err = PTR_ERR(path); if (allocated_clusters) { - int fb_flags = 0; - /* * free data blocks we just allocated. * not a good idea to call discard here directly, * but otherwise we'd need to call it every free(). */ ext4_discard_preallocations(inode); - if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) - fb_flags = EXT4_FREE_BLOCKS_NO_QUOT_UPDATE; - ext4_free_blocks(handle, inode, NULL, newblock, - EXT4_C2B(sbi, allocated_clusters), - fb_flags); + ext4_ext_remove_space(inode, newex.ee_block, newex.ee_block); } goto out; }