提交 3d2e4c3e 编写于 作者: E Erik Skultety

util: mdev: Improve the error msg on non-existent mdev prior to VM start

What one currently gets is:
failed to read '/sys/bus/mdev/devices/<UUID>/mdev_type/device_api': No
such file or directory

This indicates that something is missing within the device's sysfs tree
which likely might be not be the case here because the device simply
doesn't exist yet. So, when creating our internal mdev obj, let's check
whether the device exists first prior to trying to verify the
user-provided model within domain XML.
Signed-off-by: NErik Skultety <eskultet@redhat.com>
上级 29d6bb70
......@@ -150,13 +150,22 @@ virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
{
virMediatedDevicePtr ret = NULL;
virMediatedDevicePtr dev = NULL;
char *sysfspath = NULL;
if (VIR_ALLOC(dev) < 0)
return NULL;
if (!(sysfspath = virMediatedDeviceGetSysfsPath(uuidstr)))
goto cleanup;
if (!virFileExists(sysfspath)) {
virReportError(VIR_ERR_DEVICE_MISSING,
_("mediated device '%s' not found"), uuidstr);
goto cleanup;
}
if (!(dev->path = virMediatedDeviceGetSysfsPath(uuidstr)))
if (VIR_ALLOC(dev) < 0)
goto cleanup;
VIR_STEAL_PTR(dev->path, sysfspath);
/* Check whether the user-provided model corresponds with the actually
* supported mediated device's API.
*/
......@@ -167,6 +176,7 @@ virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
VIR_STEAL_PTR(ret, dev);
cleanup:
VIR_FREE(sysfspath);
virMediatedDeviceFree(dev);
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册