vhost-user-blk: Add return value for vhost_user_blk_start()
Add a return value for vhost_user_blk_start() to check whether we start vhost-user backend successfully or not. Signed-off-by: Xie Yongji <xieyongji@baidu.com> Signed-off-by: Zhang Yu <zhangyu31@baidu.com> Message-Id: <20190320112646.3712-6-xieyongji@baidu.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
f3facbe671
commit
a57f009108
@ -103,7 +103,7 @@ const VhostDevConfigOps blk_ops = {
|
|||||||
.vhost_dev_config_notifier = vhost_user_blk_handle_config_change,
|
.vhost_dev_config_notifier = vhost_user_blk_handle_config_change,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void vhost_user_blk_start(VirtIODevice *vdev)
|
static int vhost_user_blk_start(VirtIODevice *vdev)
|
||||||
{
|
{
|
||||||
VHostUserBlk *s = VHOST_USER_BLK(vdev);
|
VHostUserBlk *s = VHOST_USER_BLK(vdev);
|
||||||
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
|
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
|
||||||
@ -112,13 +112,13 @@ static void vhost_user_blk_start(VirtIODevice *vdev)
|
|||||||
|
|
||||||
if (!k->set_guest_notifiers) {
|
if (!k->set_guest_notifiers) {
|
||||||
error_report("binding does not support guest notifiers");
|
error_report("binding does not support guest notifiers");
|
||||||
return;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = vhost_dev_enable_notifiers(&s->dev, vdev);
|
ret = vhost_dev_enable_notifiers(&s->dev, vdev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
error_report("Error enabling host notifiers: %d", -ret);
|
error_report("Error enabling host notifiers: %d", -ret);
|
||||||
return;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = k->set_guest_notifiers(qbus->parent, s->dev.nvqs, true);
|
ret = k->set_guest_notifiers(qbus->parent, s->dev.nvqs, true);
|
||||||
@ -157,12 +157,13 @@ static void vhost_user_blk_start(VirtIODevice *vdev)
|
|||||||
vhost_virtqueue_mask(&s->dev, vdev, i, false);
|
vhost_virtqueue_mask(&s->dev, vdev, i, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return ret;
|
||||||
|
|
||||||
err_guest_notifiers:
|
err_guest_notifiers:
|
||||||
k->set_guest_notifiers(qbus->parent, s->dev.nvqs, false);
|
k->set_guest_notifiers(qbus->parent, s->dev.nvqs, false);
|
||||||
err_host_notifiers:
|
err_host_notifiers:
|
||||||
vhost_dev_disable_notifiers(&s->dev, vdev);
|
vhost_dev_disable_notifiers(&s->dev, vdev);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vhost_user_blk_stop(VirtIODevice *vdev)
|
static void vhost_user_blk_stop(VirtIODevice *vdev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user