[libvirt] [PATCH 16/32] Fix the return value in udevKludgeStorageType

Ján Tomko jtomko at redhat.com
Mon Jun 6 09:01:53 UTC 2016


Since the switch to VIR_STRDUP this function returns 1 on success,
but the caller treats any non-zero value as failure.
---
 src/node_device/node_device_udev.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 46e48df..4506ff8 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -940,28 +940,22 @@ static int udevProcessSD(struct udev_device *device,
  * storage device it is from other information that is provided. */
 static int udevKludgeStorageType(virNodeDeviceDefPtr def)
 {
-    int ret = -1;
-
     VIR_DEBUG("Could not find definitive storage type for device "
               "with sysfs path '%s', trying to guess it",
               def->sysfs_path);
 
-    if (STRPREFIX(def->caps->data.storage.block, "/dev/vd")) {
-        /* virtio disk */
-        ret = VIR_STRDUP(def->caps->data.storage.drive_type, "disk");
-    }
-
-    if (ret != 0) {
-        VIR_DEBUG("Could not determine storage type for device "
-                  "with sysfs path '%s'", def->sysfs_path);
-    } else {
+    /* virtio disk */
+    if (STRPREFIX(def->caps->data.storage.block, "/dev/vd") &&
+        VIR_STRDUP(def->caps->data.storage.drive_type, "disk") > 0) {
         VIR_DEBUG("Found storage type '%s' for device "
                   "with sysfs path '%s'",
                   def->caps->data.storage.drive_type,
                   def->sysfs_path);
+        return 0;
     }
-
-    return ret;
+    VIR_DEBUG("Could not determine storage type "
+              "for device with sysfs path '%s'", def->sysfs_path);
+    return -1;
 }
 
 
-- 
2.7.3




More information about the libvir-list mailing list