goto out;
}
+ /* If this is a device change, the old definition will be freed
+ * and the current definition will take its place. */
nodeDeviceLock(driverState);
dev = virNodeDeviceAssignDef(&driverState->devs, def);
nodeDeviceUnlock(driverState);
if (dev == NULL) {
VIR_ERROR(_("Failed to create device for '%s'"), def->name);
- virNodeDeviceDefFree(def);
goto out;
}
ret = 0;
out:
+ if (ret != 0) {
+ virNodeDeviceDefFree(def);
+ }
+
return ret;
}
name = udev_list_entry_get_name(list_entry);
device = udev_device_new_from_syspath(udev, name);
+
if (device != NULL) {
if (udevAddOneDevice(device) != 0) {
VIR_INFO("Failed to create node device for udev device '%s'",
name);
}
- udev_device_unref(device);
ret = 0;
}
+ udev_device_unref(device);
+
return ret;
}
}
out:
+ udev_device_unref(device);
return;
}