mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-04 18:20:06 +00:00
vhost-user: delete net client if necessary
As qemu_new_net_client create new ncs but error happens later, ncs will be left in global net_clients list and we can't use them any more, so we need to cleanup them. Cc: qemu-stable@nongnu.org Signed-off-by: linzhecheng <linzhecheng@huawei.com> Signed-off-by: Jason Wang <jasowang@redhat.com> (cherry picked from commitc67daf4a24
) Conflicts: net/vhost-user.c * drop functional dep on4d0cf552
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
2f2b189235
commit
fb7f173c2c
|
@ -299,7 +299,7 @@ static int net_vhost_user_init(NetClientState *peer, const char *device,
|
|||
s = DO_UPCAST(VhostUserState, nc, nc);
|
||||
if (!qemu_chr_fe_init(&s->chr, chr, &err)) {
|
||||
error_report_err(err);
|
||||
return -1;
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,7 @@ static int net_vhost_user_init(NetClientState *peer, const char *device,
|
|||
do {
|
||||
if (qemu_chr_fe_wait_connected(&s->chr, &err) < 0) {
|
||||
error_report_err(err);
|
||||
return -1;
|
||||
goto err;
|
||||
}
|
||||
qemu_chr_fe_set_handlers(&s->chr, NULL, NULL,
|
||||
net_vhost_user_event, NULL, nc0->name, NULL,
|
||||
|
@ -319,6 +319,13 @@ static int net_vhost_user_init(NetClientState *peer, const char *device,
|
|||
assert(s->vhost_net);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
if (nc0) {
|
||||
qemu_del_net_client(nc0);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static Chardev *net_vhost_claim_chardev(
|
||||
|
|
Loading…
Reference in a new issue