]> xenbits.xensource.com Git - libvirt.git/commitdiff
node_device_driver: Deduplicate mediated devices listing
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 24 Aug 2023 08:23:55 +0000 (10:23 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 24 Aug 2023 11:46:50 +0000 (13:46 +0200)
We have virMdevctlListDefined() to list defined mdevs, and
virMdevctlListActive() to list active mdevs. Both have the same
body except for one boolean argument passed to
nodeDeviceGetMdevctlListCommand(). Join the two functions under
virMdevctlList() name and introduce @defined argument that is
then just passed to the cmd line builder function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Kristina Hanicova <khanicov@redhat.com>
src/node_device/node_device_driver.c

index 593bc64e25612ecedae24d6d0d0a311d0ebd82d1..ac50c968379df5da053a44503cd2ccf24904d356 100644 (file)
@@ -1636,32 +1636,14 @@ nodeDeviceGenerateName(virNodeDeviceDef *def,
 
 
 static int
-virMdevctlListDefined(virNodeDeviceDef ***devs, char **errmsg)
+virMdevctlList(bool defined,
+               virNodeDeviceDef ***devs,
+               char **errmsg)
 {
     int status;
     g_autofree char *output = NULL;
     g_autofree char *errbuf = NULL;
-    g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(true, &output, &errbuf);
-
-    if (virCommandRun(cmd, &status) < 0 || status != 0) {
-        *errmsg = g_steal_pointer(&errbuf);
-        return -1;
-    }
-
-    if (!output)
-        return -1;
-
-    return nodeDeviceParseMdevctlJSON(output, devs);
-}
-
-
-static int
-virMdevctlListActive(virNodeDeviceDef ***devs, char **errmsg)
-{
-    int status;
-    g_autofree char *output = NULL;
-    g_autofree char *errbuf = NULL;
-    g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(false, &output, &errbuf);
+    g_autoptr(virCommand) cmd = nodeDeviceGetMdevctlListCommand(defined, &output, &errbuf);
 
     if (virCommandRun(cmd, &status) < 0 || status != 0) {
         *errmsg = g_steal_pointer(&errbuf);
@@ -1750,7 +1732,7 @@ nodeDeviceUpdateMediatedDevices(void)
         return 0;
     }
 
-    if ((data.ndefs = virMdevctlListDefined(&defs, &errmsg)) < 0) {
+    if ((data.ndefs = virMdevctlList(true, &defs, &errmsg)) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("failed to query mdevs from mdevctl: %1$s"), errmsg);
         return -1;
@@ -1767,7 +1749,7 @@ nodeDeviceUpdateMediatedDevices(void)
             return -1;
 
     /* Update active/transient mdev devices */
-    if ((act_ndefs = virMdevctlListActive(&act_defs, &errmsg)) < 0) {
+    if ((act_ndefs = virMdevctlList(false, &act_defs, &errmsg)) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("failed to query mdevs from mdevctl: %1$s"), errmsg);
         return -1;