vhost-user: disconnect on start failure

If the backend failed to start (for example feature negociation failed),
do not exit, but disconnect the char device instead. Slightly more
robust for reconnect case.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Victor Kaplansky <victork@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Marc-André Lureau 2016-06-06 18:45:03 +02:00 committed by Michael S. Tsirkin
parent 7d9d17f71e
commit 0d572afd52

View File

@ -202,7 +202,8 @@ static void net_vhost_user_event(void *opaque, int event)
s->watch = qemu_chr_fe_add_watch(s->chr, G_IO_HUP, s->watch = qemu_chr_fe_add_watch(s->chr, G_IO_HUP,
net_vhost_user_watch, s); net_vhost_user_watch, s);
if (vhost_user_start(queues, ncs) < 0) { if (vhost_user_start(queues, ncs) < 0) {
exit(1); qemu_chr_disconnect(s->chr);
return;
} }
qmp_set_link(name, true, &err); qmp_set_link(name, true, &err);
break; break;