diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index ce48eb59d6156dd72b8cfe4344e50411abe47d98..d01cc249a8d36188986fa70b073b054c550cf937 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -197,6 +197,7 @@ static struct btrfs_trans_handle *start_transaction(struct btrfs_root *root, ret = join_transaction(root); if (ret < 0) { + kmem_cache_free(btrfs_trans_handle_cachep, h); if (type != TRANS_JOIN_NOLOCK) mutex_unlock(&root->fs_info->trans_mutex); return ERR_PTR(ret);