• Filipe Manana's avatar
    btrfs: remove unnecessary attempt to drop extent maps after adding inline extent · f30bed83
    Filipe Manana authored
    At inode.c:cow_file_range_inline(), after we insert the inline extent
    in the fs/subvolume btree, we call btrfs_drop_extent_cache() to drop
    all extent maps in the file range, however that is not necessary because
    we have already done it in the call to btrfs_drop_extents(), which calls
    btrfs_drop_extent_cache() for us, and since at this point we have the file
    range locked in the inode's iotree (we are in the writeback path), we know
    no other task can come in and read stale file extent items or find none
    and therefore create either stale extent maps or an extent map that
    represents a hole.
    
    So just remove that unnecessary call to btrfs_drop_extent_cache(), as it's
    doing nothing and only wasting time. This call has been around since 2008,
    introduced in commit c8b97818
    
     ("Btrfs: Add zlib compression support"),
    but even back then it seems it was not necessary, since we had the range
    locked in the inode's iotree and the call to btrfs_drop_extents() already
    used to always call btrfs_drop_extent_cache().
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    f30bed83
inode.c 288 KB