提交 88043da2 编写于 作者: J Jonathon Jongsma 提交者: Erik Skultety

nodedev: add mdev support to virNodeDeviceDestroy()

Add the ability to destroy mdev node devices via the mdevctl utility.
Signed-off-by: NJonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: NErik Skultety <eskultet@redhat.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 9badcbbb
......@@ -786,6 +786,32 @@ nodeDeviceCreateXML(virConnectPtr conn,
}
virCommandPtr
nodeDeviceGetMdevctlStopCommand(const char *uuid)
{
return virCommandNewArgList(MDEVCTL,
"stop",
"-u",
uuid,
NULL);
}
static int
virMdevctlStop(virNodeDeviceDefPtr def)
{
int status;
g_autoptr(virCommand) cmd = NULL;
cmd = nodeDeviceGetMdevctlStopCommand(def->caps->data.mdev.uuid);
if (virCommandRun(cmd, &status) < 0 || status != 0)
return -1;
return 0;
}
int
nodeDeviceDestroy(virNodeDevicePtr device)
{
......@@ -832,6 +858,13 @@ nodeDeviceDestroy(virNodeDevicePtr device)
if (virVHBAManageVport(parent_host, wwpn, wwnn, VPORT_DELETE) < 0)
goto cleanup;
ret = 0;
} else if (nodeDeviceHasCapability(def, VIR_NODE_DEV_CAP_MDEV)) {
if (virMdevctlStop(def) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to stop mediated device"));
goto cleanup;
}
ret = 0;
} else {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
......
......@@ -121,3 +121,5 @@ nodeConnectNodeDeviceEventDeregisterAny(virConnectPtr conn,
virCommandPtr
nodeDeviceGetMdevctlStartCommand(virNodeDeviceDefPtr def,
char **uuid_out);
virCommandPtr
nodeDeviceGetMdevctlStopCommand(const char *uuid);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册