RE: [PATCH v3 2/2] kvm/vfio: avoid bouncing the mutex when adding and deleting groups

From: Tian, Kevin
Date: Wed Jul 19 2023 - 01:32:44 EST


> From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> Sent: Saturday, July 15, 2023 6:46 AM
>
> @@ -165,30 +161,26 @@ static int kvm_vfio_group_add(struct kvm_device
> *dev, unsigned int fd)
> list_for_each_entry(kvg, &kv->group_list, node) {
> if (kvg->file == filp) {
> ret = -EEXIST;
> - goto err_unlock;
> + goto out_unlock;
> }
> }
>
> kvg = kzalloc(sizeof(*kvg), GFP_KERNEL_ACCOUNT);
> if (!kvg) {
> ret = -ENOMEM;
> - goto err_unlock;
> + goto out_unlock;
> }
>
> - kvg->file = filp;
> + kvg->file = get_file(filp);

Why is another reference required here?