vhost: Distinguish errors in vhost_backend_init()
commit28770ff935bce723c5799d292bc788770b69a733
authorKevin Wolf <kwolf@redhat.com>
Wed, 9 Jun 2021 15:46:53 +0000 (9 08:46 -0700)
committerKevin Wolf <kwolf@redhat.com>
Wed, 30 Jun 2021 11:16:03 +0000 (30 13:16 +0200)
tree7cace1f0832556f6bc7c1bde6d57dcf6ded918a5
parenta6945f2287aa7f048b263d7187364cbf1dd5d94d
vhost: Distinguish errors in vhost_backend_init()

Instead of just returning 0/-1 and letting the caller make up a
meaningless error message, add an Error parameter to allow reporting the
real error and switch to 0/-errno so that different kind of errors can
be distinguished in the caller.

Specifically, in vhost-user, EPROTO is used for all errors that relate
to the connection itself, whereas other error codes are used for errors
relating to the content of the connection. This will allow us later to
automatically reconnect when the connection goes away, without ending up
in an endless loop if it's a permanent error in the configuration.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-3-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/virtio/vhost-backend.c
hw/virtio/vhost-user.c
hw/virtio/vhost-vdpa.c
hw/virtio/vhost.c
include/hw/virtio/vhost-backend.h