vhost-scsi: Call virtio_scsi_common_unrealize() when device realize failed

This avoids memory leak when device hotplug is failed.

Signed-off-by: Xie Yongji <xieyongji@baidu.com>
Message-Id: <20190717004606.12444-1-xieyongji@baidu.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Xie Yongji 2019-07-17 08:46:05 +08:00 committed by Paolo Bonzini
parent 12e1dc4939
commit 934443c37b
1 changed files with 3 additions and 1 deletions

View File

@ -210,7 +210,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
if (err) {
error_propagate(errp, err);
error_free(vsc->migration_blocker);
goto close_fd;
goto free_virtio;
}
}
@ -240,6 +240,8 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
migrate_del_blocker(vsc->migration_blocker);
}
g_free(vsc->dev.vqs);
free_virtio:
virtio_scsi_common_unrealize(dev);
close_fd:
close(vhostfd);
return;