• Filipe Manana's avatar
    btrfs: remove pointless and double ulist frees in error paths of qgroup tests · d0ea17ae
    Filipe Manana authored
    Several places in the qgroup self tests follow the pattern of freeing the
    ulist pointer they passed to btrfs_find_all_roots() if the call to that
    function returned an error. That is pointless because that function always
    frees the ulist in case it returns an error.
    
    Also In some places like at test_multiple_refs(), after a call to
    btrfs_qgroup_account_extent() we also leave "old_roots" and "new_roots"
    pointing to ulists that were freed, because btrfs_qgroup_account_extent()
    has freed those ulists, and if after that the next call to
    btrfs_find_all_roots() fails, we call ulist_free() on the "old_roots"
    ulist again, resulting in a double free.
    
    So remove those calls to reduce the code size and avoid double ulist
    free in case of an error.
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    d0ea17ae
qgroup-tests.c 12.9 KB