[PATCH 00/10] Subject: [PATCH 00/10] Code cleanup

Several functions was modified to become invariant. Change their type to void and remove unnecessary checks of their return values. Found by Linux Verification Center (linuxtesting.org) with SVACE. Artem Chernyshev (10): conf: domain_conf: virDomainHostdevInsert/virDomainNetInsert to void libxl: libxlMakeDomainCapabilities to void virtime: virTimeMillisNowRaw to void conf: virDomainGraphicsListenAppendAddress() to void conf: virDomainDefMaybeAddInput() to void virbitmap: virBitmapToData() to void tools: cmdDomblkinfoGet() to void vireventglib: virEventRunDefaultImpl() to void vsh: vshCompleterFilter() to void vsh: vshInitDebug() to void examples/c/misc/event-test.c | 5 +- include/libvirt/libvirt-event.h | 2 +- src/ch/ch_monitor.c | 5 +- src/conf/domain_conf.c | 35 +++------- src/conf/domain_conf.h | 8 +-- src/conf/virdomainjob.c | 7 +- src/hypervisor/domain_driver.c | 5 +- src/libxl/libxl_capabilities.c | 40 ++++-------- src/libxl/libxl_capabilities.h | 2 +- src/libxl/libxl_domain.c | 16 ++--- src/libxl/libxl_domain.h | 2 +- src/libxl/libxl_driver.c | 17 ++--- src/libxl/xen_common.c | 25 +++---- src/libxl/xen_common.h | 2 +- src/libxl/xen_xl.c | 3 +- src/lxc/lxc_driver.c | 6 +- src/nwfilter/nwfilter_dhcpsnoop.c | 18 ++--- src/qemu/qemu_agent.c | 6 +- src/qemu/qemu_backup.c | 3 +- src/qemu/qemu_dbus.c | 3 +- src/qemu/qemu_domain.c | 35 ++++------ src/qemu/qemu_domainjob.c | 22 +++---- src/qemu/qemu_domainjob.h | 4 +- src/qemu/qemu_driver.c | 19 +++--- src/qemu/qemu_hotplug.c | 6 +- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_nbdkit.c | 3 +- src/qemu/qemu_process.c | 12 ++-- src/qemu/qemu_tpm.c | 3 +- src/rpc/virnetdaemon.c | 6 +- src/storage/storage_backend_iscsi_direct.c | 4 +- src/util/virbitmap.c | 6 +- src/util/virbitmap.h | 2 +- src/util/virevent.c | 7 +- src/util/vireventglib.c | 4 +- src/util/vireventglib.h | 2 +- src/util/virfdstream.c | 3 +- src/util/virhostcpu.c | 4 +- src/util/virhostuptime.c | 3 +- src/util/virtime.c | 48 ++++---------- src/util/virtime.h | 14 ++-- src/vbox/vbox_common.c | 4 +- src/vmx/vmx.c | 3 +- src/vz/vz_driver.c | 38 +++++------ src/vz/vz_sdk.c | 14 ++-- src/vz/vz_utils.c | 16 ++--- src/vz/vz_utils.h | 2 +- tests/domaincapstest.c | 3 +- tests/objecteventtest.c | 76 ++++++++++------------ tests/qemucapsprobe.c | 5 +- tests/qemumonitortestutils.c | 8 +-- tests/virbitmaptest.c | 3 +- tests/virnetsockettest.c | 3 +- tools/virsh-completer-domain.c | 6 +- tools/virsh-domain-monitor.c | 10 +-- tools/virsh-domain.c | 15 ++--- tools/vsh.c | 24 +++---- 57 files changed, 231 insertions(+), 420 deletions(-) -- 2.43.0

Change virDomainHostdevInsert() and virDomainNetInsert() functions type to void, since not returning anything usefull at this point. Also, remove all checks, which test return values of those functions. Fixes: 98f6f2081d ("util: alloc: Reimplement VIR_APPEND_ELEMENT using virAppendElement") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/conf/domain_conf.c | 25 ++++++------------------- src/conf/domain_conf.h | 4 ++-- src/libxl/libxl_domain.c | 3 +-- src/libxl/libxl_driver.c | 6 ++---- src/lxc/lxc_driver.c | 6 ++---- src/qemu/qemu_driver.c | 6 ++---- src/qemu/qemu_process.c | 3 +-- 7 files changed, 16 insertions(+), 37 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 82672b30a0..3ea70fc051 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14099,12 +14099,10 @@ virDomainChrTargetTypeToString(int deviceType, return type; } -int +void virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev) { VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev); - - return 0; } virDomainHostdevDef * @@ -14517,15 +14515,11 @@ virDomainDiskRemoveByName(virDomainDef *def, const char *name) return virDomainDiskRemove(def, idx); } -int virDomainNetInsert(virDomainDef *def, virDomainNetDef *net) +void virDomainNetInsert(virDomainDef *def, virDomainNetDef *net) { - /* hostdev net devices must also exist in the hostdevs array */ - if (net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV && - virDomainHostdevInsert(def, &net->data.hostdev.def) < 0) - return -1; - + if (net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV) + virDomainHostdevInsert(def, &net->data.hostdev.def); VIR_APPEND_ELEMENT(def->nets, def->nnets, net); - return 0; } /** @@ -18886,15 +18880,8 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, return NULL; def->nets[def->nnets++] = net; - - /* <interface type='hostdev'> (and <interface type='net'> - * where the actual network type is already known to be - * hostdev) must also be in the hostdevs array. - */ - if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_HOSTDEV && - virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net)) < 0) { - return NULL; - } + if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_HOSTDEV) + virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net)); } VIR_FREE(nodes); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 14901b37ba..6152d464f3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3890,7 +3890,7 @@ int virDomainNetFindIdx(virDomainDef *def, virDomainNetDef *net); virDomainNetDef *virDomainNetFind(virDomainDef *def, const char *device); virDomainNetDef *virDomainNetFindByName(virDomainDef *def, const char *ifname); bool virDomainHasNet(virDomainDef *def, virDomainNetDef *net); -int virDomainNetInsert(virDomainDef *def, virDomainNetDef *net); +void virDomainNetInsert(virDomainDef *def, virDomainNetDef *net); int virDomainNetUpdate(virDomainDef *def, size_t netidx, virDomainNetDef *newnet); bool virDomainNetBackendIsEqual(virDomainNetBackend *src, virDomainNetBackend *dst); @@ -3900,7 +3900,7 @@ virDomainNetDef *virDomainNetRemove(virDomainDef *def, size_t i); virDomainNetDef *virDomainNetRemoveByObj(virDomainDef *def, virDomainNetDef *net); void virDomainNetRemoveHostdev(virDomainDef *def, virDomainNetDef *net); -int virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev); +void virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev); virDomainHostdevDef * virDomainHostdevRemove(virDomainDef *def, size_t i); int virDomainHostdevFind(virDomainDef *def, virDomainHostdevDef *match, diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 0c4beffd6a..19cbdd9e82 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -999,8 +999,7 @@ libxlNetworkPrepareDevices(virDomainDef *def) hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN; - if (virDomainHostdevInsert(def, hostdev) < 0) - return -1; + virDomainHostdevInsert(def, hostdev); } } diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index c98d2d737a..691e9b3517 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -3552,8 +3552,7 @@ libxlDomainAttachDeviceConfig(virDomainDef *vmdef, virDomainDeviceDef *dev) virMacAddrFormat(&net->mac, mac)); return -1; } - if (virDomainNetInsert(vmdef, net)) - return -1; + virDomainNetInsert(vmdef, net); dev->data.net = NULL; break; @@ -3577,8 +3576,7 @@ libxlDomainAttachDeviceConfig(virDomainDef *vmdef, virDomainDeviceDef *dev) return -1; } - if (virDomainHostdevInsert(vmdef, hostdev) < 0) - return -1; + virDomainHostdevInsert(vmdef, hostdev); dev->data.hostdev = NULL; break; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 25cbfc57c9..d47e0b4295 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3010,8 +3010,7 @@ lxcDomainAttachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_NET: net = dev->data.net; - if (virDomainNetInsert(vmdef, net) < 0) - return -1; + virDomainNetInsert(vmdef, net); dev->data.net = NULL; ret = 0; break; @@ -3023,8 +3022,7 @@ lxcDomainAttachDeviceConfig(virDomainDef *vmdef, _("device is already in the domain configuration")); return -1; } - if (virDomainHostdevInsert(vmdef, hostdev) < 0) - return -1; + virDomainHostdevInsert(vmdef, hostdev); dev->data.hostdev = NULL; ret = 0; break; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 2d75357939..4b6068be04 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6697,8 +6697,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef, case VIR_DOMAIN_DEVICE_NET: net = dev->data.net; - if (virDomainNetInsert(vmdef, net)) - return -1; + virDomainNetInsert(vmdef, net); dev->data.net = NULL; break; @@ -6715,8 +6714,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef, _("device is already in the domain configuration")); return -1; } - if (virDomainHostdevInsert(vmdef, hostdev)) - return -1; + virDomainHostdevInsert(vmdef, hostdev); dev->data.hostdev = NULL; break; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index fc05b4b24f..5926acf7ad 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5760,8 +5760,7 @@ qemuProcessNetworkPrepareDevices(virQEMUDriver *driver, if (qemuDomainPrepareHostdev(hostdev, priv) < 0) return -1; - if (virDomainHostdevInsert(def, hostdev) < 0) - return -1; + virDomainHostdevInsert(def, hostdev); } else if (actualType == VIR_DOMAIN_NET_TYPE_USER && net->backend.type == VIR_DOMAIN_NET_BACKEND_DEFAULT && !priv->disableSlirp && -- 2.43.0

Change libxlMakeDomainCapabilities() to void, since all checks, which results in returning -1, are, in fact, not possible. libxlMakeDomainOSCaps(), libxlMakeDomainDeviceDiskCaps(), libxlMakeDomainDeviceGraphicsCaps(), libxlMakeDomainDeviceVideoCaps(), libxlMakeDomainDeviceHostdevCaps() also changing to void, because they are invariant. Test fillXenCaps() at moment is useless, so it could be removed or changed in the future. Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/libxl/libxl_capabilities.c | 40 ++++++++++++---------------------- src/libxl/libxl_capabilities.h | 2 +- src/libxl/libxl_driver.c | 5 +---- tests/domaincapstest.c | 3 +-- 4 files changed, 17 insertions(+), 33 deletions(-) diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index 177e8b988e..3753cb256e 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -518,7 +518,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCaps *caps) return 0; } -static int +static void libxlMakeDomainOSCaps(const char *machine, virDomainCapsOS *os, virFirmware **firmwares, @@ -533,7 +533,7 @@ libxlMakeDomainOSCaps(const char *machine, capsLoader->readonly.report = true; if (STREQ(machine, "xenpv") || STREQ(machine, "xenpvh")) - return 0; + return; capsLoader->supported = VIR_TRISTATE_BOOL_YES; capsLoader->values.values = g_new0(char *, nfirmwares); @@ -548,11 +548,9 @@ libxlMakeDomainOSCaps(const char *machine, VIR_DOMAIN_LOADER_TYPE_PFLASH); VIR_DOMAIN_CAPS_ENUM_SET(capsLoader->readonly, VIR_TRISTATE_BOOL_YES); - - return 0; } -static int +static void libxlMakeDomainDeviceDiskCaps(virDomainCapsDeviceDisk *dev) { dev->supported = VIR_TRISTATE_BOOL_YES; @@ -568,11 +566,9 @@ libxlMakeDomainDeviceDiskCaps(virDomainCapsDeviceDisk *dev) VIR_DOMAIN_DISK_BUS_IDE, VIR_DOMAIN_DISK_BUS_SCSI, VIR_DOMAIN_DISK_BUS_XEN); - - return 0; } -static int +static void libxlMakeDomainDeviceGraphicsCaps(virDomainCapsDeviceGraphics *dev) { dev->supported = VIR_TRISTATE_BOOL_YES; @@ -582,11 +578,9 @@ libxlMakeDomainDeviceGraphicsCaps(virDomainCapsDeviceGraphics *dev) VIR_DOMAIN_GRAPHICS_TYPE_SDL, VIR_DOMAIN_GRAPHICS_TYPE_VNC, VIR_DOMAIN_GRAPHICS_TYPE_SPICE); - - return 0; } -static int +static void libxlMakeDomainDeviceVideoCaps(virDomainCapsDeviceVideo *dev) { dev->supported = VIR_TRISTATE_BOOL_YES; @@ -596,11 +590,9 @@ libxlMakeDomainDeviceVideoCaps(virDomainCapsDeviceVideo *dev) VIR_DOMAIN_VIDEO_TYPE_VGA, VIR_DOMAIN_VIDEO_TYPE_CIRRUS, VIR_DOMAIN_VIDEO_TYPE_XEN); - - return 0; } -static int +static void libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev) { dev->supported = VIR_TRISTATE_BOOL_YES; @@ -632,7 +624,6 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev) virDomainCapsEnumClear(&dev->pciBackend); VIR_DOMAIN_CAPS_ENUM_SET(dev->pciBackend, VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN); - return 0; } virCaps * @@ -669,7 +660,7 @@ libxlMakeCapabilities(libxl_ctx *ctx) #define HVM_MAX_VCPUS 128 #define PV_MAX_VCPUS 512 -int +void libxlMakeDomainCapabilities(virDomainCaps *domCaps, virFirmware **firmwares, size_t nfirmwares) @@ -685,21 +676,18 @@ libxlMakeDomainCapabilities(virDomainCaps *domCaps, else domCaps->maxvcpus = PV_MAX_VCPUS; - if (libxlMakeDomainOSCaps(domCaps->machine, os, firmwares, nfirmwares) < 0 || - libxlMakeDomainDeviceDiskCaps(disk) < 0 || - libxlMakeDomainDeviceGraphicsCaps(graphics) < 0 || - libxlMakeDomainDeviceVideoCaps(video) < 0) - return -1; - if (STRNEQ(domCaps->machine, "xenpvh") && - libxlMakeDomainDeviceHostdevCaps(hostdev) < 0) - return -1; + libxlMakeDomainOSCaps(domCaps->machine, os, firmwares, nfirmwares); + libxlMakeDomainDeviceDiskCaps(disk); + libxlMakeDomainDeviceGraphicsCaps(graphics); + libxlMakeDomainDeviceVideoCaps(video); + + if (STRNEQ(domCaps->machine, "xenpvh") + libxlMakeDomainDeviceHostdevCaps(hostdev); domCaps->features[VIR_DOMAIN_CAPS_FEATURE_IOTHREADS] = VIR_TRISTATE_BOOL_NO; domCaps->features[VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO] = VIR_TRISTATE_BOOL_NO; domCaps->features[VIR_DOMAIN_CAPS_FEATURE_GENID] = VIR_TRISTATE_BOOL_NO; domCaps->gic.supported = VIR_TRISTATE_BOOL_NO; - - return 0; } #define LIBXL_QEMU_DM_STR "Options specific to the Xen version:" diff --git a/src/libxl/libxl_capabilities.h b/src/libxl/libxl_capabilities.h index fd6332b63e..16ac3ed034 100644 --- a/src/libxl/libxl_capabilities.h +++ b/src/libxl/libxl_capabilities.h @@ -40,7 +40,7 @@ virCaps * libxlMakeCapabilities(libxl_ctx *ctx); -int +void libxlMakeDomainCapabilities(virDomainCaps *domCaps, virFirmware **firmwares, size_t nfirmwares); diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 691e9b3517..11a96233bd 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -6409,10 +6409,7 @@ libxlConnectGetDomainCapabilities(virConnectPtr conn, if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) goto cleanup; - if (libxlMakeDomainCapabilities(domCaps, cfg->firmwares, - cfg->nfirmwares) < 0) - goto cleanup; - + libxlMakeDomainCapabilities(domCaps, cfg->firmwares, cfg->nfirmwares); ret = virDomainCapsFormat(domCaps); cleanup: diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index c4a4508430..958469fcfb 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -143,8 +143,7 @@ fillXenCaps(virDomainCaps *domCaps) firmwares[0]->name = g_strdup("/usr/lib/xen/boot/hvmloader"); firmwares[1]->name = g_strdup("/usr/lib/xen/boot/ovmf.bin"); - if (libxlMakeDomainCapabilities(domCaps, firmwares, 2) < 0) - return -1; + libxlMakeDomainCapabilities(domCaps, firmwares, 2); return 0; } -- 2.43.0

virTimeMillisNowRaw() function are invariant now, so, quite a few checks, dependent on it are become irrelevant. Fixes: f5e9bdb87f ("src: replace clock_gettime()/gettimeofday() with g_get_real_time()") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/conf/virdomainjob.c | 7 ++-- src/libxl/libxl_domain.c | 10 ++--- src/libxl/libxl_domain.h | 2 +- src/libxl/libxl_driver.c | 6 +-- src/nwfilter/nwfilter_dhcpsnoop.c | 18 +++----- src/qemu/qemu_agent.c | 6 +-- src/qemu/qemu_backup.c | 3 +- src/qemu/qemu_dbus.c | 3 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domainjob.c | 22 ++++------ src/qemu/qemu_domainjob.h | 4 +- src/qemu/qemu_driver.c | 10 ++--- src/qemu/qemu_hotplug.c | 6 +-- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_nbdkit.c | 3 +- src/qemu/qemu_process.c | 9 ++-- src/qemu/qemu_tpm.c | 3 +- src/storage/storage_backend_iscsi_direct.c | 4 +- src/util/virfdstream.c | 3 +- src/util/virhostuptime.c | 3 +- src/util/virtime.c | 48 +++++----------------- src/util/virtime.h | 14 +++---- src/vz/vz_driver.c | 15 +++---- src/vz/vz_utils.c | 16 +++----- src/vz/vz_utils.h | 2 +- tools/virsh-domain.c | 12 ++---- 26 files changed, 82 insertions(+), 153 deletions(-) diff --git a/src/conf/virdomainjob.c b/src/conf/virdomainjob.c index 38f08f1d18..457b218f6f 100644 --- a/src/conf/virdomainjob.c +++ b/src/conf/virdomainjob.c @@ -326,8 +326,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, virDomainAgentJobTypeToString(jobObj->agentActive), virDomainAsyncJobTypeToString(jobObj->asyncJob)); - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); jobObj->jobsQueued++; then = now + VIR_JOB_WAIT_TIME; @@ -373,7 +372,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, goto cleanup; } - ignore_value(virTimeMillisNow(&now)); + virTimeMillisNow(&now); if (job) { virDomainObjResetJob(jobObj); @@ -422,7 +421,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, return 0; error: - ignore_value(virTimeMillisNow(&now)); + virTimeMillisNow(&now); if (jobObj->active && jobObj->started) duration = now - jobObj->started; if (jobObj->agentActive && jobObj->agentStarted) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 19cbdd9e82..69bac7d0ae 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -43,24 +43,22 @@ VIR_LOG_INIT("libxl.libxl_domain"); -int +void libxlDomainJobGetTimeElapsed(virDomainJobObj *job, unsigned long long *timeElapsed) { unsigned long long now; if (!job->started) - return 0; + return; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (now < job->started) { job->started = 0; - return 0; + return; } *timeElapsed = now - job->started; - return 0; } static void * diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 94b693e477..c5573188d1 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -49,7 +49,7 @@ extern const struct libxl_event_hooks ev_hooks; int libxlDomainObjPrivateInitCtx(virDomainObj *vm); -int +void libxlDomainJobGetTimeElapsed(virDomainJobObj *job, unsigned long long *timeElapsed); diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 11a96233bd..5ad66261fd 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5370,8 +5370,7 @@ libxlDomainGetJobInfo(virDomainPtr dom, /* In libxl we don't have an estimated completion time * thus we always set to unbounded and update time * for the active job. */ - if (libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed) < 0) - goto cleanup; + libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed); /* setting only these two attributes is enough because libxl never sets * anything else */ @@ -5417,8 +5416,7 @@ libxlDomainGetJobStats(virDomainPtr dom, /* In libxl we don't have an estimated completion time * thus we always set to unbounded and update time * for the active job. */ - if (libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed) < 0) - goto cleanup; + libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed); if (virTypedParamsAddULLong(params, nparams, &maxparams, VIR_DOMAIN_JOB_TIME_ELAPSED, diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c index 26072ec26e..91e6bc28ef 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -1103,13 +1103,9 @@ virNWFilterSnoopRatePenalty(virNWFilterSnoopPcapConf *pc, if (diff > limit) { unsigned long long now; - if (virTimeMillisNowRaw(&now) < 0) { - g_usleep(PCAP_FLOOD_TIMEOUT_MS); /* 1 ms */ - pc->penaltyTimeoutAbs = 0; - } else { - /* don't listen to the fd for 1 ms */ - pc->penaltyTimeoutAbs = now + PCAP_FLOOD_TIMEOUT_MS; - } + virTimeMillisNowRaw(&now); + /* don't listen to the fd for 1 ms */ + pc->penaltyTimeoutAbs = now + PCAP_FLOOD_TIMEOUT_MS; } } @@ -1127,12 +1123,8 @@ virNWFilterSnoopAdjustPoll(virNWFilterSnoopPcapConf *pc, for (i = 0; i < nPc; i++) { if (pc[i].penaltyTimeoutAbs != 0) { - if (now == 0) { - if (virTimeMillisNow(&now) < 0) { - ret = -1; - break; - } - } + if (now == 0) + virTimeMillisNow(&now); if (now < pc[i].penaltyTimeoutAbs) { /* don't listen to incoming data on the fd for some time */ diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index f9bcf38dfb..7d3be39380 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -737,8 +737,7 @@ static int qemuAgentSend(qemuAgent *agent, if (seconds > VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK) { unsigned long long now; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (seconds == VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT) seconds = QEMU_AGENT_WAIT_TIME; then = now + seconds * 1000ull; @@ -803,8 +802,7 @@ qemuAgentGuestSyncSend(qemuAgent *agent, qemuAgentMessage sync_msg = { 0 }; int rc; - if (virTimeMillisNow(&id) < 0) - return -1; + virTimeMillisNow(&id); txMsg = g_strdup_printf("{\"execute\":\"guest-sync\", " "\"arguments\":{\"id\":%llu}}\n", id); diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 857709b17e..a269f1f802 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -1145,8 +1145,7 @@ qemuBackupGetJobInfoStats(virDomainObj *vm, return -1; } - if (qemuDomainJobDataUpdateTime(jobData) < 0) - return -1; + qemuDomainJobDataUpdateTime(jobData); jobData->status = VIR_DOMAIN_JOB_STATUS_ACTIVE; diff --git a/src/qemu/qemu_dbus.c b/src/qemu/qemu_dbus.c index 06b655d870..85e00b7607 100644 --- a/src/qemu/qemu_dbus.c +++ b/src/qemu/qemu_dbus.c @@ -231,8 +231,7 @@ qemuDBusStart(virQEMUDriver *driver, goto cleanup; } - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] = { 0 }; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 734d63f8a4..ac5aefeb43 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6439,7 +6439,7 @@ qemuDomainObjEnterMonitorInternal(virDomainObj *obj, priv->mon, obj, obj->def->name); virObjectLock(priv->mon); virObjectRef(priv->mon); - ignore_value(virTimeMillisNow(&priv->monStart)); + virTimeMillisNow(&priv->monStart); virObjectUnlock(obj); return 0; diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 245e51f14b..9419795406 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -133,7 +133,7 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, virDomainAsyncJobTypeToString(asyncJob), vm->def->name); if (started == 0) - ignore_value(virTimeMillisNow(&started)); + virTimeMillisNow(&started); job->jobsQueued++; job->asyncJob = asyncJob; @@ -151,48 +151,44 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, } -int +void qemuDomainJobDataUpdateTime(virDomainJobData *jobData) { unsigned long long now; if (!jobData->started) - return 0; + return; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (now < jobData->started) { VIR_WARN("Async job starts in the future"); jobData->started = 0; - return 0; + return; } jobData->timeElapsed = now - jobData->started; - return 0; } -int +void qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) { unsigned long long now; qemuDomainJobDataPrivate *priv = jobData->privateData; if (!jobData->stopped) - return 0; + return; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (now < jobData->stopped) { VIR_WARN("Guest's CPUs stopped in the future"); jobData->stopped = 0; - return 0; + return; } priv->stats.mig.downtime = now - jobData->stopped; priv->stats.mig.downtime_set = true; - return 0; } diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index c3de401aa5..5bd457abc7 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -89,9 +89,9 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, void qemuDomainObjDiscardAsyncJob(virDomainObj *obj); void qemuDomainObjReleaseAsyncJob(virDomainObj *obj); -int qemuDomainJobDataUpdateTime(virDomainJobData *jobData) +void qemuDomainJobDataUpdateTime(virDomainJobData *jobData) ATTRIBUTE_NONNULL(1); -int qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) +void qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) ATTRIBUTE_NONNULL(1); int qemuDomainJobDataToInfo(virDomainJobData *jobData, virDomainJobInfoPtr info) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4b6068be04..9e2c930cf5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2578,8 +2578,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, info->state = VIR_DOMAIN_CONTROL_ERROR; info->details = VIR_DOMAIN_CONTROL_ERROR_REASON_MONITOR; } else if (vm->job->active) { - if (virTimeMillisNow(&info->stateTime) < 0) - goto cleanup; + virTimeMillisNow(&info->stateTime); if (vm->job->current) { info->state = VIR_DOMAIN_CONTROL_JOB; info->stateTime -= vm->job->current->started; @@ -11924,7 +11923,9 @@ qemuDomainGetJobInfoMigrationStats(virDomainObj *vm, return 0; } - return qemuDomainJobDataUpdateTime(jobData); + qemuDomainJobDataUpdateTime(jobData); + + return 0; } @@ -11948,8 +11949,7 @@ qemuDomainGetJobInfoDumpStats(virDomainObj *vm, privJob->stats.dump = stats; - if (qemuDomainJobDataUpdateTime(jobData) < 0) - return -1; + qemuDomainJobDataUpdateTime(jobData); switch (privJob->stats.dump.status) { case QEMU_MONITOR_DUMP_STATUS_NONE: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 75e1d39b60..fed292295a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -252,8 +252,7 @@ qemuHotplugWaitForTrayEject(virDomainObj *vm, unsigned long long now; int rc; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); while (disk->tray_status != VIR_DOMAIN_DISK_TRAY_OPEN) { if ((rc = virDomainObjWaitUntil(vm, now + CHANGE_MEDIA_TIMEOUT)) < 0) @@ -5448,8 +5447,7 @@ qemuDomainWaitForDeviceRemoval(virDomainObj *vm) qemuDomainObjPrivate *priv = vm->privateData; unsigned long long until; - if (virTimeMillisNow(&until) < 0) - return 1; + virTimeMillisNow(&until); until += qemuDomainGetUnplugTimeout(vm); while (true) { diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 3ba0aa502b..9d49885cb0 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -5027,7 +5027,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver, vm->job->completed->stopped = vm->job->current->stopped; qemuDomainJobDataUpdateTime(vm->job->completed); qemuDomainJobDataUpdateDowntime(vm->job->completed); - ignore_value(virTimeMillisNow(&vm->job->completed->sent)); + virTimeMillisNow(&vm->job->completed->sent); } cookieFlags |= QEMU_MIGRATION_COOKIE_NETWORK | @@ -6846,7 +6846,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver, goto cleanup; phase = QEMU_MIGRATION_PHASE_FINISH_RESUME; } - ignore_value(virTimeMillisNow(&timeReceived)); + virTimeMillisNow(&timeReceived); if (qemuMigrationJobStartPhase(vm, phase) < 0) goto cleanup; diff --git a/src/qemu/qemu_nbdkit.c b/src/qemu/qemu_nbdkit.c index 85e61be44c..0ffde44fe3 100644 --- a/src/qemu/qemu_nbdkit.c +++ b/src/qemu/qemu_nbdkit.c @@ -1209,8 +1209,7 @@ qemuNbdkitProcessStart(qemuNbdkitProcess *proc, goto error; } - if (virTimeBackOffStart(&timebackoff, 1, 1000) < 0) - goto error; + virTimeBackOffStart(&timebackoff, 1, 1000); while (virTimeBackOffWait(&timebackoff)) { if (virFileExists(proc->socketfile)) { diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 5926acf7ad..43df1b4865 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -662,7 +662,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, detail); if (vm->job->current) - ignore_value(virTimeMillisNow(&vm->job->current->stopped)); + virTimeMillisNow(&vm->job->current->stopped); if (priv->signalStop) virDomainObjBroadcast(vm); @@ -1869,7 +1869,7 @@ qemuConnectMonitor(virQEMUDriver *driver, return -1; } - ignore_value(virTimeMillisNow(&priv->monStart)); + virTimeMillisNow(&priv->monStart); mon = qemuMonitorOpen(vm, priv->monConfig, @@ -2832,8 +2832,7 @@ qemuProcessStartManagedPRDaemon(virDomainObj *vm) goto cleanup; } - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] = { 0 }; @@ -3187,7 +3186,7 @@ int qemuProcessStopCPUs(virQEMUDriver *driver, ignore_value(qemuInterfaceStopDevices(vm->def)); if (vm->job->current) - ignore_value(virTimeMillisNow(&vm->job->current->stopped)); + virTimeMillisNow(&vm->job->current->stopped); /* The STOP event handler will change the domain state with the reason * saved in priv->pausedReason and it will also emit corresponding domain diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index bf0c6bcb0d..c5e6e6c41c 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -969,8 +969,7 @@ qemuTPMEmulatorStart(virQEMUDriver *driver, goto error; } - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto error; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] = { 0 }; diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c index 658a684e83..485416e0bd 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -188,9 +188,7 @@ virISCSIDirectTestUnitReady(struct iscsi_context *iscsi, int ret = -1; virTimeBackOffVar timebackoff; - if (virTimeBackOffStart(&timebackoff, 1, - VIR_ISCSI_TEST_UNIT_TIMEOUT) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, VIR_ISCSI_TEST_UNIT_TIMEOUT); do { if (!(task = iscsi_testunitready_sync(iscsi, lun))) { diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c index 26a1f00316..926ca980e2 100644 --- a/src/util/virfdstream.c +++ b/src/util/virfdstream.c @@ -1213,8 +1213,7 @@ int virFDStreamConnectUNIX(virStreamPtr st, return -1; } - if (virTimeBackOffStart(&timeout, 1, 3*1000 /* ms */) < 0) - return -1; + virTimeBackOffStart(&timeout, 1, 3*1000 /* ms */); while (virTimeBackOffWait(&timeout)) { ret = connect(fd, (struct sockaddr *)&sa, sizeof(sa)); if (ret == 0) diff --git a/src/util/virhostuptime.c b/src/util/virhostuptime.c index 2467ea51b0..323e275483 100644 --- a/src/util/virhostuptime.c +++ b/src/util/virhostuptime.c @@ -51,8 +51,7 @@ virHostGetBootTimeProcfs(unsigned long long *btime) g_autofree char *buf = NULL; char *tmp; - if (virTimeMillisNow(&now) < 0) - return -errno; + virTimeMillisNow(&now); /* 1KiB limit is more than enough. */ if (virFileReadAll(UPTIME_FILE, 1024, &buf) < 0) diff --git a/src/util/virtime.c b/src/util/virtime.c index baf4ce5db7..3d62494109 100644 --- a/src/util/virtime.c +++ b/src/util/virtime.c @@ -49,13 +49,10 @@ VIR_LOG_INIT("util.time"); * * Retrieves the current system time, in milliseconds since the * epoch - * - * Returns 0 on success, -1 on error with errno set */ -int virTimeMillisNowRaw(unsigned long long *now) +void virTimeMillisNowRaw(unsigned long long *now) { *now = g_get_real_time() / 1000; - return 0; } @@ -65,19 +62,13 @@ int virTimeMillisNowRaw(unsigned long long *now) * * Retrieves the current time, in broken-down field format. * The time is always in UTC. - * - * Returns 0 on success, -1 on error with errno set */ -int virTimeFieldsNowRaw(struct tm *fields) +void virTimeFieldsNowRaw(struct tm *fields) { unsigned long long now; - if (virTimeMillisNowRaw(&now) < 0) - return -1; - + virTimeMillisNowRaw(&now); virTimeFieldsThen(now, fields); - - return 0; } @@ -163,8 +154,7 @@ int virTimeStringNowRaw(char *buf) { unsigned long long now; - if (virTimeMillisNowRaw(&now) < 0) - return -1; + virTimeMillisNowRaw(&now); return virTimeStringThenRaw(now, buf); } @@ -208,17 +198,10 @@ int virTimeStringThenRaw(unsigned long long when, char *buf) * * Retrieves the current system time, in milliseconds since the * epoch - * - * Returns 0 on success, -1 on error with error reported */ -int virTimeMillisNow(unsigned long long *now) +void virTimeMillisNow(unsigned long long *now) { - if (virTimeMillisNowRaw(now) < 0) { - virReportSystemError(errno, "%s", - _("Unable to get current time")); - return -1; - } - return 0; + virTimeMillisNowRaw(now); } @@ -228,18 +211,13 @@ int virTimeMillisNow(unsigned long long *now) * * Retrieves the current time, in broken-down field format. * The time is always in UTC. - * - * Returns 0 on success, -1 on error with errno reported */ -int virTimeFieldsNow(struct tm *fields) +void virTimeFieldsNow(struct tm *fields) { unsigned long long now; - if (virTimeMillisNow(&now) < 0) - return -1; - + virTimeMillisNow(&now); virTimeFieldsThen(now, fields); - return 0; } @@ -327,19 +305,15 @@ virTimeLocalOffsetFromUTC(long *offset) * @timeout: Timeout (milliseconds). * * Initialize the timeout variable @var and start the timer running. - * - * Returns 0 on success, -1 on error and raises a libvirt error. */ -int +void virTimeBackOffStart(virTimeBackOffVar *var, unsigned long long first, unsigned long long timeout) { - if (virTimeMillisNow(&var->start_t) < 0) - return -1; + virTimeMillisNow(&var->start_t); var->next = first; var->limit_t = var->start_t + timeout; - return 0; } @@ -379,7 +353,7 @@ virTimeBackOffWait(virTimeBackOffVar *var) { unsigned long long next, t = 0; - ignore_value(virTimeMillisNowRaw(&t)); + virTimeMillisNowRaw(&t); VIR_DEBUG("t=%llu, limit=%llu", t, var->limit_t); diff --git a/src/util/virtime.h b/src/util/virtime.h index d4fba4aff5..19604f2b55 100644 --- a/src/util/virtime.h +++ b/src/util/virtime.h @@ -39,10 +39,6 @@ void virTimeFieldsThen(unsigned long long when, struct tm *fields) /* These APIs are async signal safe and return -1, setting * errno on failure */ -int virTimeMillisNowRaw(unsigned long long *now) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; -int virTimeFieldsNowRaw(struct tm *fields) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; int virTimeStringNowRaw(char *buf) ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; int virTimeStringThenRaw(unsigned long long when, char *buf) @@ -51,10 +47,6 @@ int virTimeStringThenRaw(unsigned long long when, char *buf) /* These APIs are *not* async signal safe and return -1, * raising a libvirt error on failure */ -int virTimeMillisNow(unsigned long long *now) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; -int virTimeFieldsNow(struct tm *fields) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; char *virTimeStringNow(void); char *virTimeStringThen(unsigned long long when); @@ -67,7 +59,11 @@ typedef struct { unsigned long long limit_t; } virTimeBackOffVar; -int virTimeBackOffStart(virTimeBackOffVar *var, +void virTimeBackOffStart(virTimeBackOffVar *var, unsigned long long first, unsigned long long timeout); bool virTimeBackOffWait(virTimeBackOffVar *var); +void virTimeMillisNowRaw(unsigned long long *now); +void virTimeFieldsNowRaw(struct tm *fields); +void virTimeMillisNow(unsigned long long *now); +void virTimeFieldsNow(struct tm *fields); diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index c7ceec2339..93f0e1bbb4 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -3320,7 +3320,7 @@ vzDomainMigrateConfirm3Params(virDomainPtr domain G_GNUC_UNUSED, return 0; } -static int +static void vzDomainGetJobInfoImpl(virDomainObj *dom, virDomainJobInfoPtr info) { struct vzDomObj *privdom = dom->privateData; @@ -3329,18 +3329,15 @@ vzDomainGetJobInfoImpl(virDomainObj *dom, virDomainJobInfoPtr info) memset(info, 0, sizeof(*info)); if (!job->active || !job->hasProgress) - return 0; + return; - if (vzDomainJobUpdateTime(job) < 0) - return -1; + vzDomainJobUpdateTime(job); info->type = VIR_DOMAIN_JOB_UNBOUNDED; info->dataTotal = 100; info->dataProcessed = job->progress; info->dataRemaining = 100 - job->progress; info->timeElapsed = job->elapsed; - - return 0; } static int @@ -3355,7 +3352,8 @@ vzDomainGetJobInfo(virDomainPtr domain, virDomainJobInfoPtr info) if (virDomainGetJobInfoEnsureACL(domain->conn, dom->def) < 0) goto cleanup; - ret = vzDomainGetJobInfoImpl(dom, info); + vzDomainGetJobInfoImpl(dom, info); + ret = 0; cleanup: virDomainObjEndAPI(&dom); @@ -3416,8 +3414,7 @@ vzDomainGetJobStats(virDomainPtr domain, if (virDomainGetJobStatsEnsureACL(domain->conn, dom->def) < 0) goto cleanup; - if (vzDomainGetJobInfoImpl(dom, &info) < 0) - goto cleanup; + vzDomainGetJobInfoImpl(dom, &info); if (info.type == VIR_DOMAIN_JOB_NONE) { *type = VIR_DOMAIN_JOB_NONE; diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index 7c08d0f88b..bbcffa3148 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -584,8 +584,7 @@ vzDomainObjBeginJob(virDomainObj *dom) unsigned long long now; unsigned long long then; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); then = now + VZ_JOB_WAIT_TIME; while (pdom->job.active) { @@ -593,8 +592,7 @@ vzDomainObjBeginJob(virDomainObj *dom) goto error; } - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); pdom->job.active = true; pdom->job.started = now; @@ -623,23 +621,21 @@ vzDomainObjEndJob(virDomainObj *dom) virCondSignal(&pdom->job.cond); } -int +void vzDomainJobUpdateTime(struct _vzDomainJobObj *job) { unsigned long long now; if (!job->started) - return 0; + return; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (now < job->started) { VIR_WARN("Async job starts in the future"); job->started = 0; - return 0; + return; } job->elapsed = now - job->started; - return 0; } diff --git a/src/vz/vz_utils.h b/src/vz/vz_utils.h index 7a797953a5..6da4e8c998 100644 --- a/src/vz/vz_utils.h +++ b/src/vz/vz_utils.h @@ -149,5 +149,5 @@ int vzDomainObjBeginJob(virDomainObj *dom); void vzDomainObjEndJob(virDomainObj *dom); -int +void vzDomainJobUpdateTime(struct _vzDomainJobObj *job); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 58d5a4ab57..778a96856f 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -1917,10 +1917,8 @@ virshBlockJobWait(virshBlockJobWaitData *data) sigaction(SIGINT, &sig_action, &old_sig_action); #endif /* !WIN32 */ - if (data->timeout && virTimeMillisNow(&start) < 0) { - vshSaveLibvirtError(); - goto cleanup; - } + if (data->timeout) + virTimeMillisNow(&start); last.cur = last.end = 0; @@ -1969,10 +1967,8 @@ virshBlockJobWait(virshBlockJobWaitData *data) info.end); last = info; - if (data->timeout && virTimeMillisNow(&curr) < 0) { - vshSaveLibvirtError(); - goto cleanup; - } + if (data->timeout) + virTimeMillisNow(&curr); if (intCaught || (data->timeout && (curr - start > data->timeout))) { if (virDomainBlockJobAbort(data->dom, data->dev, abort_flags) < 0) { -- 2.43.0

On Mon, Dec 25, 2023 at 12:25:56AM +0300, Artem Chernyshev wrote:
virTimeMillisNowRaw() function are invariant now, so, quite a few checks, dependent on it are become irrelevant.
Fixes: f5e9bdb87f ("src: replace clock_gettime()/gettimeofday() with g_get_real_time()") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/conf/virdomainjob.c | 7 ++-- src/libxl/libxl_domain.c | 10 ++--- src/libxl/libxl_domain.h | 2 +- src/libxl/libxl_driver.c | 6 +-- src/nwfilter/nwfilter_dhcpsnoop.c | 18 +++----- src/qemu/qemu_agent.c | 6 +-- src/qemu/qemu_backup.c | 3 +- src/qemu/qemu_dbus.c | 3 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domainjob.c | 22 ++++------ src/qemu/qemu_domainjob.h | 4 +- src/qemu/qemu_driver.c | 10 ++--- src/qemu/qemu_hotplug.c | 6 +-- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_nbdkit.c | 3 +- src/qemu/qemu_process.c | 9 ++-- src/qemu/qemu_tpm.c | 3 +- src/storage/storage_backend_iscsi_direct.c | 4 +- src/util/virfdstream.c | 3 +- src/util/virhostuptime.c | 3 +- src/util/virtime.c | 48 +++++----------------- src/yutil/virtime.h | 14 +++---- src/vz/vz_driver.c | 15 +++---- src/vz/vz_utils.c | 16 +++----- src/vz/vz_utils.h | 2 +- tools/virsh-domain.c | 12 ++---- 26 files changed, 82 insertions(+), 153 deletions(-)
diff --git a/src/util/virtime.c b/src/util/virtime.c index baf4ce5db7..3d62494109 100644 --- a/src/util/virtime.c +++ b/src/util/virtime.c @@ -208,17 +198,10 @@ int virTimeStringThenRaw(unsigned long long when, char *buf) * * Retrieves the current system time, in milliseconds since the * epoch - * - * Returns 0 on success, -1 on error with error reported */ -int virTimeMillisNow(unsigned long long *now) +void virTimeMillisNow(unsigned long long *now) { - if (virTimeMillisNowRaw(now) < 0) { - virReportSystemError(errno, "%s", - _("Unable to get current time")); - return -1; - } - return 0; + virTimeMillisNowRaw(now);
This makes this function just a dumb caller to virTimeMillisNowRaw(). That means we can remove that function and change all the callers to just call virTimeMillisNow. Also this series does not apply after that long of a time (sorry for the delay), so please rebase and repost this if you want to get this in. Thanks, Martin

virDomainGraphicsListenAppendAddress() return value is invariant, so change it type and remove all dependent checks. Fixes: 592517636f ("util: alloc: Reimplement VIR_APPEND_ELEMENT_COPY using virAppendElement") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/conf/domain_conf.c | 4 +--- src/conf/domain_conf.h | 2 +- src/libxl/xen_common.c | 7 ++----- src/libxl/xen_xl.c | 3 +-- src/vbox/vbox_common.c | 4 +--- src/vmx/vmx.c | 3 +-- 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3ea70fc051..1ab1caba58 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29092,7 +29092,7 @@ virDomainGraphicsGetListen(virDomainGraphicsDef *def, size_t i) } -int +void virDomainGraphicsListenAppendAddress(virDomainGraphicsDef *def, const char *address) { @@ -29103,8 +29103,6 @@ virDomainGraphicsListenAppendAddress(virDomainGraphicsDef *def, glisten.address = g_strdup(address); VIR_APPEND_ELEMENT_COPY(def->listens, def->nListens, glisten); - - return 0; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 6152d464f3..ffa9f74a72 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3910,7 +3910,7 @@ int virDomainHostdevMatch(virDomainHostdevDef *a, virDomainGraphicsListenDef * virDomainGraphicsGetListen(virDomainGraphicsDef *def, size_t i); -int virDomainGraphicsListenAppendAddress(virDomainGraphicsDef *def, +void virDomainGraphicsListenAppendAddress(virDomainGraphicsDef *def, const char *address) ATTRIBUTE_NONNULL(1); int virDomainGraphicsListenAppendSocket(virDomainGraphicsDef *def, diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index d5a0399613..c7bc51b926 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -673,8 +673,7 @@ xenParseVfb(virConf *conf, virDomainDef *def) if (xenConfigCopyStringOpt(conf, "vnclisten", &listenAddr) < 0) goto cleanup; - if (virDomainGraphicsListenAppendAddress(graphics, listenAddr) < 0) - goto cleanup; + virDomainGraphicsListenAppendAddress(graphics, listenAddr); VIR_FREE(listenAddr); if (xenConfigCopyStringOpt(conf, "vncpasswd", &graphics->data.vnc.auth.passwd) < 0) @@ -766,9 +765,7 @@ xenParseVfb(virConf *conf, virDomainDef *def) key = nextkey; } if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) { - if (virDomainGraphicsListenAppendAddress(graphics, - listenAddr) < 0) - goto cleanup; + virDomainGraphicsListenAppendAddress(graphics, listenAddr); VIR_FREE(listenAddr); } def->graphics = g_new0(virDomainGraphicsDef *, 1); diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index f175359307..553aa77896 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -341,8 +341,7 @@ xenParseXLSpice(virConf *conf, virDomainDef *def) graphics->type = VIR_DOMAIN_GRAPHICS_TYPE_SPICE; if (xenConfigCopyStringOpt(conf, "spicehost", &listenAddr) < 0) goto cleanup; - if (virDomainGraphicsListenAppendAddress(graphics, listenAddr) < 0) - goto cleanup; + virDomainGraphicsListenAppendAddress(graphics, listenAddr); if (xenConfigGetULong(conf, "spicetls_port", &port, 0) < 0) goto cleanup; diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index de3c9989a5..9f6612ad61 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -3625,8 +3625,7 @@ vboxDumpDisplay(virDomainDef *def, struct _vboxDriver *data, IMachine *machine) if (netAddressUtf8 && STREQ(netAddressUtf8, "")) VBOX_UTF8_FREE(netAddressUtf8); - if (virDomainGraphicsListenAppendAddress(graphics, netAddressUtf8) < 0) - goto cleanup; + virDomainGraphicsListenAppendAddress(graphics, netAddressUtf8); gVBoxAPI.UIVRDEServer.GetAllowMultiConnection(VRDEServer, &allowMultiConnection); if (allowMultiConnection) @@ -3641,7 +3640,6 @@ vboxDumpDisplay(virDomainDef *def, struct _vboxDriver *data, IMachine *machine) ret = 0; - cleanup: VBOX_RELEASE(VRDEServer); VBOX_UTF8_FREE(valueTypeUtf8); VBOX_UTF8_FREE(netAddressUtf8); diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 26b89776e1..e746ff213b 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2017,8 +2017,7 @@ virVMXParseVNC(virConf *conf, virDomainGraphicsDef **def) goto failure; } - if (virDomainGraphicsListenAppendAddress(*def, listenAddr) < 0) - goto failure; + virDomainGraphicsListenAppendAddress(*def, listenAddr); VIR_FREE(listenAddr); if (port < 0) { -- 2.43.0

virDomainDefMaybeAddInput() function returns an invariant result, so turn it to void. Remove all redundant check which depends on it returning value. Fixes: 98f6f2081d ("util: alloc: Reimplement VIR_APPEND_ELEMENT using virAppendElement") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/conf/domain_conf.c | 6 ++---- src/conf/domain_conf.h | 2 +- src/libxl/libxl_domain.c | 3 +-- src/libxl/xen_common.c | 18 +++++++----------- src/libxl/xen_common.h | 2 +- src/qemu/qemu_domain.c | 33 ++++++++++++--------------------- src/vz/vz_driver.c | 23 +++++++++-------------- src/vz/vz_sdk.c | 14 ++++++-------- 8 files changed, 39 insertions(+), 62 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1ab1caba58..3a73a3ae83 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16179,7 +16179,7 @@ virDomainDefMaybeAddController(virDomainDef *def, } -int +void virDomainDefMaybeAddInput(virDomainDef *def, int type, int bus) @@ -16190,7 +16190,7 @@ virDomainDefMaybeAddInput(virDomainDef *def, for (i = 0; i < def->ninputs; i++) { if (def->inputs[i]->type == type && def->inputs[i]->bus == bus) - return 0; + return; } input = g_new0(virDomainInputDef, 1); @@ -16199,8 +16199,6 @@ virDomainDefMaybeAddInput(virDomainDef *def, input->bus = bus; VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input); - - return 0; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index ffa9f74a72..cd582c19b1 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -4273,7 +4273,7 @@ virDomainDefMaybeAddController(virDomainDef *def, virDomainControllerType type, int idx, int model); -int +void virDomainDefMaybeAddInput(virDomainDef *def, int type, int bus); diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 69bac7d0ae..f8f474ebdb 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -257,8 +257,7 @@ libxlDomainDefPostParse(virDomainDef *def, } /* add implicit input devices */ - if (xenDomainDefAddImplicitInputDevice(def) < 0) - return -1; + xenDomainDefAddImplicitInputDevice(def); /* For x86_64 HVM */ if (def->os.type == VIR_DOMAIN_OSTYPE_HVM && diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index c7bc51b926..d67a14b7df 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -2382,7 +2382,7 @@ xenFormatConfigCommon(virConf *conf, } -int +void xenDomainDefAddImplicitInputDevice(virDomainDef *def) { virDomainInputBus implicitInputBus = VIR_DOMAIN_INPUT_BUS_XEN; @@ -2390,15 +2390,11 @@ xenDomainDefAddImplicitInputDevice(virDomainDef *def) if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) implicitInputBus = VIR_DOMAIN_INPUT_BUS_PS2; - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_MOUSE, - implicitInputBus) < 0) - return -1; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_MOUSE, + implicitInputBus); - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_KBD, - implicitInputBus) < 0) - return -1; - - return 0; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_KBD, + implicitInputBus); } diff --git a/src/libxl/xen_common.h b/src/libxl/xen_common.h index b21046e959..86c2c337c1 100644 --- a/src/libxl/xen_common.h +++ b/src/libxl/xen_common.h @@ -66,4 +66,4 @@ int xenFormatConfigCommon(virConf *conf, char *xenMakeIPList(virNetDevIPInfo *guestIP); -int xenDomainDefAddImplicitInputDevice(virDomainDef *def); +void xenDomainDefAddImplicitInputDevice(virDomainDef *def); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ac5aefeb43..31b10afaed 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3917,22 +3917,18 @@ virXMLNamespace virQEMUDriverDomainXMLNamespace = { }; -static int +static void qemuDomainDefAddImplicitInputDevice(virDomainDef *def) { if (ARCH_IS_X86(def->os.arch)) { - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_MOUSE, - VIR_DOMAIN_INPUT_BUS_PS2) < 0) - return -1; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_MOUSE, + VIR_DOMAIN_INPUT_BUS_PS2); - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_KBD, - VIR_DOMAIN_INPUT_BUS_PS2) < 0) - return -1; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_KBD, + VIR_DOMAIN_INPUT_BUS_PS2); } - - return 0; } static int @@ -4122,8 +4118,7 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, bool addITCOWatchdog = false; /* add implicit input devices */ - if (qemuDomainDefAddImplicitInputDevice(def) < 0) - return -1; + qemuDomainDefAddImplicitInputDevice(def); /* Add implicit PCI root controller if the machine has one */ switch (def->os.arch) { @@ -4320,19 +4315,15 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, addDefaultUSBMouse = false; } - if (addDefaultUSBKBD && - def->ngraphics > 0 && + if (addDefaultUSBKBD && def->ngraphics > 0) virDomainDefMaybeAddInput(def, VIR_DOMAIN_INPUT_TYPE_KBD, - VIR_DOMAIN_INPUT_BUS_USB) < 0) - return -1; + VIR_DOMAIN_INPUT_BUS_USB); - if (addDefaultUSBMouse && - def->ngraphics > 0 && + if (addDefaultUSBMouse && def->ngraphics > 0) virDomainDefMaybeAddInput(def, VIR_DOMAIN_INPUT_TYPE_MOUSE, - VIR_DOMAIN_INPUT_BUS_USB) < 0) - return -1; + VIR_DOMAIN_INPUT_BUS_USB); if (addPanicDevice) { size_t j; diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 93f0e1bbb4..55b39d2200 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -210,26 +210,22 @@ vzConnectGetCapabilities(virConnectPtr conn) return virCapabilitiesFormatXML(privconn->driver->caps); } -static int +static void vzDomainDefAddDefaultInputDevices(virDomainDef *def) { int bus = IS_CT(def) ? VIR_DOMAIN_INPUT_BUS_PARALLELS : VIR_DOMAIN_INPUT_BUS_PS2; if (def->ngraphics == 0) - return 0; - - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_MOUSE, - bus) < 0) - return -1; + return; - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_KBD, - bus) < 0) - return -1; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_MOUSE, + bus); - return 0; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_KBD, + bus); } static int @@ -244,8 +240,7 @@ vzDomainDefPostParse(virDomainDef *def, def->virtType)) return -1; - if (vzDomainDefAddDefaultInputDevices(def) < 0) - return -1; + vzDomainDefAddDefaultInputDevices(def); return 0; } diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 6a15d60577..080beac351 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1849,15 +1849,13 @@ prlsdkLoadDomain(struct _vzDriver *driver, int bus = IS_CT(def) ? VIR_DOMAIN_INPUT_BUS_PARALLELS : VIR_DOMAIN_INPUT_BUS_PS2; - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_MOUSE, - bus) < 0) - return NULL; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_MOUSE, + bus); - if (virDomainDefMaybeAddInput(def, - VIR_DOMAIN_INPUT_TYPE_KBD, - bus) < 0) - return NULL; + virDomainDefMaybeAddInput(def, + VIR_DOMAIN_INPUT_TYPE_KBD, + bus); } if (!dom) { -- 2.43.0

virBitmapToData() function returns an invariant result, so turn it to void. Remove all redundant check which depends on it returning value. Fixes: e59b8f96f7 ("util: a-n: use g_new0") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- src/ch/ch_monitor.c | 5 +---- src/hypervisor/domain_driver.c | 5 ++--- src/qemu/qemu_driver.c | 3 +-- src/util/virbitmap.c | 6 +----- src/util/virbitmap.h | 2 +- src/util/virhostcpu.c | 4 ++-- tests/virbitmaptest.c | 3 +-- tools/virsh-completer-domain.c | 6 ++---- tools/virsh-domain.c | 3 +-- 9 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index 6f960c3a51..bc79b353f7 100644 --- a/src/ch/ch_monitor.c +++ b/src/ch/ch_monitor.c @@ -997,10 +997,7 @@ virCHMonitorGetIOThreads(virCHMonitor *mon, if (!(map = virProcessGetAffinity(iothreadinfo->iothread_id))) goto error; - if (virBitmapToData(map, &(iothreadinfo->cpumap), - &(iothreadinfo->cpumaplen)) < 0) { - goto error; - } + virBitmapToData(map, &(iothreadinfo->cpumap), &(iothreadinfo->cpumaplen)); /* Append to iothreadinfolist */ iothreadinfolist[niothreads] = g_steal_pointer(&iothreadinfo); diff --git a/src/hypervisor/domain_driver.c b/src/hypervisor/domain_driver.c index d9469ad6f9..d5c7b4238d 100644 --- a/src/hypervisor/domain_driver.c +++ b/src/hypervisor/domain_driver.c @@ -622,9 +622,8 @@ virDomainDriverGetIOThreadsConfig(virDomainDef *targetDef, cpumask = bitmap; } } - if (virBitmapToData(cpumask, &info_ret[i]->cpumap, - &info_ret[i]->cpumaplen) < 0) - goto cleanup; + virBitmapToData(cpumask, &info_ret[i]->cpumap, + &info_ret[i]->cpumaplen); } *info = g_steal_pointer(&info_ret); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 9e2c930cf5..812a6559fe 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -4780,8 +4780,7 @@ qemuDomainGetIOThreadsLive(virDomainObj *vm, if (!(map = virProcessGetAffinity(iothreads[i]->thread_id))) goto endjob; - if (virBitmapToData(map, &info_ret[i]->cpumap, &info_ret[i]->cpumaplen) < 0) - goto endjob; + virBitmapToData(map, &info_ret[i]->cpumap, &info_ret[i]->cpumaplen); } *info = g_steal_pointer(&info_ret); diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c index e48224d709..d1f0cdb257 100644 --- a/src/util/virbitmap.c +++ b/src/util/virbitmap.c @@ -602,10 +602,8 @@ virBitmapNewData(const void *data, * Convert a bitmap to a chunk of data containing bits information. * Data consists of sequential bytes, with lower bytes containing * lower bits. This function allocates @data. - * - * Returns 0 on success, -1 otherwise. */ -int +void virBitmapToData(virBitmap *bitmap, unsigned char **data, int *dataLen) @@ -621,8 +619,6 @@ virBitmapToData(virBitmap *bitmap, *dataLen = len; virBitmapToDataBuf(bitmap, *data, *dataLen); - - return 0; } diff --git a/src/util/virbitmap.h b/src/util/virbitmap.h index a9cf309884..787627cd76 100644 --- a/src/util/virbitmap.h +++ b/src/util/virbitmap.h @@ -88,7 +88,7 @@ virBitmap *virBitmapNewCopy(virBitmap *src) ATTRIBUTE_NONNULL(1); virBitmap *virBitmapNewData(const void *data, int len) ATTRIBUTE_NONNULL(1); -int virBitmapToData(virBitmap *bitmap, unsigned char **data, int *dataLen) +void virBitmapToData(virBitmap *bitmap, unsigned char **data, int *dataLen) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); void virBitmapToDataBuf(virBitmap *bitmap, unsigned char *data, size_t len) diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 4027547e1e..6cd1689b25 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -1086,8 +1086,8 @@ virHostCPUGetMap(unsigned char **cpumap, if (!(cpus = virHostCPUGetOnlineBitmap())) goto cleanup; - if (cpumap && virBitmapToData(cpus, cpumap, &dummy) < 0) - goto cleanup; + if (cpumap) + virBitmapToData(cpus, cpumap, &dummy); if (online) *online = virBitmapCountBits(cpus); diff --git a/tests/virbitmaptest.c b/tests/virbitmaptest.c index f4fadb7c8a..a479c66a3d 100644 --- a/tests/virbitmaptest.c +++ b/tests/virbitmaptest.c @@ -339,8 +339,7 @@ test5(const void *v G_GNUC_UNUSED) ignore_value(virBitmapSetBit(bitmap, 2)); ignore_value(virBitmapSetBit(bitmap, 15)); - if (virBitmapToData(bitmap, &data2, &len2) < 0) - return -1; + virBitmapToData(bitmap, &data2, &len2); if (len2 != sizeof(data) || data2[0] != 0x05 || diff --git a/tools/virsh-completer-domain.c b/tools/virsh-completer-domain.c index b54baf3577..1f0c84a884 100644 --- a/tools/virsh-completer-domain.c +++ b/tools/virsh-completer-domain.c @@ -731,8 +731,7 @@ virshDomainVcpulistViaAgentCompleter(vshControl *ctl, if (!(onlineVcpus = virBitmapParseUnlimited(onlineVcpuStr))) goto cleanup; - if (virBitmapToData(onlineVcpus, &onlineVcpumap, &dummy) < 0) - goto cleanup; + virBitmapToData(onlineVcpus, &onlineVcpumap, &dummy); if (enable) { offlinableVcpuStr = vshGetTypedParamValue(ctl, ¶ms[2]); @@ -740,8 +739,7 @@ virshDomainVcpulistViaAgentCompleter(vshControl *ctl, if (!(offlinableVcpus = virBitmapParseUnlimited(offlinableVcpuStr))) goto cleanup; - if (virBitmapToData(offlinableVcpus, &offlinableVcpumap, &dummy) < 0) - goto cleanup; + virBitmapToData(offlinableVcpus, &offlinableVcpumap, &dummy); lastcpu = virBitmapLastSetBit(offlinableVcpus); cpulist = g_new0(char *, nvcpus - virBitmapCountBits(onlineVcpus) + 1); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 778a96856f..7c9f09bf03 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -7109,8 +7109,7 @@ virshParseCPUList(vshControl *ctl, int *cpumaplen, } } - if (virBitmapToData(map, &cpumap, cpumaplen) < 0) - return NULL; + virBitmapToData(map, &cpumap, cpumaplen); return cpumap; } -- 2.43.0

cmdDomblkinfoGet() function returns an invariant result, so turn it to void. Remove all redundant check which depends on it returning value Fixes: 26a137093b ("tools: Use g_strdup_printf() instead of virAsprintf()") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- tools/virsh-domain-monitor.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c index a2c56fc090..db2b9c7294 100644 --- a/tools/virsh-domain-monitor.c +++ b/tools/virsh-domain-monitor.c @@ -409,7 +409,7 @@ static const vshCmdOptDef opts_domblkinfo[] = { {.name = NULL} }; -static bool +static void cmdDomblkinfoGet(const virDomainBlockInfo *info, char **cap, char **alloc, @@ -436,8 +436,6 @@ cmdDomblkinfoGet(const virDomainBlockInfo *info, *alloc = g_strdup_printf("%.3lf %s", val_alloc, unit_alloc); *phy = g_strdup_printf("%.3lf %s", val_phy, unit_phy); } - - return true; } @@ -515,8 +513,7 @@ cmdDomblkinfo(vshControl *ctl, const vshCmd *cmd) } } - if (!cmdDomblkinfoGet(&info, &cap, &alloc, &phy, human)) - return false; + cmdDomblkinfoGet(&info, &cap, &alloc, &phy, human); if (vshTableRowAppend(table, target, cap, alloc, phy, NULL) < 0) return false; } @@ -532,8 +529,7 @@ cmdDomblkinfo(vshControl *ctl, const vshCmd *cmd) if (virDomainGetBlockInfo(dom, device, &info, 0) < 0) return false; - if (!cmdDomblkinfoGet(&info, &cap, &alloc, &phy, human)) - return false; + cmdDomblkinfoGet(&info, &cap, &alloc, &phy, human); vshPrint(ctl, "%-15s %s\n", _("Capacity:"), cap); vshPrint(ctl, "%-15s %s\n", _("Allocation:"), alloc); vshPrint(ctl, "%-15s %s\n", _("Physical:"), phy); -- 2.43.0

virEventRunDefaultImpl() function returns an invariant result, so turn it to void. Remove all redundant check which depends on it returning value Fixes: 946a25274c ("util: switch to use the GLib event loop impl") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- examples/c/misc/event-test.c | 5 +-- include/libvirt/libvirt-event.h | 2 +- src/rpc/virnetdaemon.c | 6 +-- src/util/virevent.c | 7 +-- src/util/vireventglib.c | 4 +- src/util/vireventglib.h | 2 +- tests/objecteventtest.c | 76 ++++++++++++++++----------------- tests/qemucapsprobe.c | 5 +-- tests/qemumonitortestutils.c | 8 +--- tests/virnetsockettest.c | 3 +- tools/vsh.c | 3 +- 11 files changed, 47 insertions(+), 74 deletions(-) diff --git a/examples/c/misc/event-test.c b/examples/c/misc/event-test.c index 88d99dff56..9c54ad5176 100644 --- a/examples/c/misc/event-test.c +++ b/examples/c/misc/event-test.c @@ -1367,10 +1367,7 @@ main(int argc, char **argv) } while (run) { - if (virEventRunDefaultImpl() < 0) { - fprintf(stderr, "Failed to run event loop: %s\n", - virGetLastErrorMessage()); - } + virEventRunDefaultImpl(); } printf("Deregistering event callbacks\n"); diff --git a/include/libvirt/libvirt-event.h b/include/libvirt/libvirt-event.h index 41e662a237..c8af377670 100644 --- a/include/libvirt/libvirt-event.h +++ b/include/libvirt/libvirt-event.h @@ -191,7 +191,7 @@ void virEventRegisterImpl(virEventAddHandleFunc addHandle, virEventRemoveTimeoutFunc removeTimeout); int virEventRegisterDefaultImpl(void); -int virEventRunDefaultImpl(void); +void virEventRunDefaultImpl(void); int virEventAddHandle(int fd, int events, virEventHandleCallback cb, diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c index 9795418126..269198d4b6 100644 --- a/src/rpc/virnetdaemon.c +++ b/src/rpc/virnetdaemon.c @@ -834,11 +834,7 @@ virNetDaemonRun(virNetDaemon *dmn) virNetDaemonShutdownTimerUpdate(dmn); virObjectUnlock(dmn); - if (virEventRunDefaultImpl() < 0) { - virObjectLock(dmn); - VIR_DEBUG("Loop iteration error, exiting"); - break; - } + virEventRunDefaultImpl(); virObjectLock(dmn); virHashForEach(dmn->servers, daemonServerProcessClients, NULL); diff --git a/src/util/virevent.c b/src/util/virevent.c index e625183a7f..65ae5256a2 100644 --- a/src/util/virevent.c +++ b/src/util/virevent.c @@ -350,14 +350,11 @@ int virEventRegisterDefaultImpl(void) * ...print error... * } * - * Returns 0 on success, -1 on failure. - * * Since: 0.9.0 */ -int virEventRunDefaultImpl(void) +void virEventRunDefaultImpl(void) { VIR_DEBUG("running default event implementation"); virResetLastError(); - - return virEventGLibRunOnce(); + virEventGLibRunOnce(); } diff --git a/src/util/vireventglib.c b/src/util/vireventglib.c index 023dc37445..b8f99f3167 100644 --- a/src/util/vireventglib.c +++ b/src/util/vireventglib.c @@ -510,9 +510,7 @@ void virEventGLibRegister(void) } -int virEventGLibRunOnce(void) +void virEventGLibRunOnce(void) { g_main_context_iteration(NULL, TRUE); - - return 0; } diff --git a/src/util/vireventglib.h b/src/util/vireventglib.h index ef68abaa20..59ee20841f 100644 --- a/src/util/vireventglib.h +++ b/src/util/vireventglib.h @@ -25,4 +25,4 @@ void virEventGLibRegister(void); -int virEventGLibRunOnce(void); +void virEventGLibRunOnce(void); diff --git a/tests/objecteventtest.c b/tests/objecteventtest.c index 7110f54139..6568787435 100644 --- a/tests/objecteventtest.c +++ b/tests/objecteventtest.c @@ -200,9 +200,11 @@ testDomainCreateXMLOld(const void *data) registered = true; dom = virDomainCreateXML(test->conn, domainDef, 0); - if (dom == NULL || virEventRunDefaultImpl() < 0) + if (dom == NULL) goto cleanup; + virEventRunDefaultImpl(); + if (counter.startEvents != 1 || counter.unexpectedEvents > 0) goto cleanup; @@ -239,9 +241,11 @@ testDomainCreateXMLNew(const void *data) goto cleanup; dom = virDomainCreateXML(test->conn, domainDef, 0); - if (dom == NULL || virEventRunDefaultImpl() < 0) + if (dom == NULL) goto cleanup; + virEventRunDefaultImpl(); + if (counter.startEvents != 1 || counter.unexpectedEvents > 0) goto cleanup; @@ -302,9 +306,11 @@ testDomainCreateXMLMixed(const void *data) virDomainFree(dom); dom = virDomainCreateXML(test->conn, domainDef, 0); - if (dom == NULL || virEventRunDefaultImpl() < 0) + if (dom == NULL) goto cleanup; + virEventRunDefaultImpl(); + if (counter.startEvents != 3 || counter.unexpectedEvents > 0) goto cleanup; @@ -353,9 +359,10 @@ testDomainDefine(const void *data) /* Make sure the define event is triggered */ dom = virDomainDefineXML(test->conn, domainDef); - if (dom == NULL || virEventRunDefaultImpl() < 0) { + if (dom == NULL) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.defineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -364,9 +371,7 @@ testDomainDefine(const void *data) /* Make sure the undefine event is triggered */ virDomainUndefine(dom); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.undefineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -406,8 +411,7 @@ testDomainStartStopEvent(const void *data) if (virDomainCreate(dom) < 0) goto cleanup; - if (virEventRunDefaultImpl() < 0) - goto cleanup; + virEventRunDefaultImpl(); if (counter.startEvents != 1 || counter.stopEvents != 1 || counter.unexpectedEvents > 0) @@ -425,8 +429,7 @@ testDomainStartStopEvent(const void *data) if (virDomainCreate(dom2) < 0) goto cleanup; - if (virEventRunDefaultImpl() < 0) - goto cleanup; + virEventRunDefaultImpl(); if (counter.startEvents != 2 || counter.stopEvents != 2 || counter.unexpectedEvents > 0) @@ -459,9 +462,10 @@ testNetworkCreateXML(const void *data) &counter, NULL); net = virNetworkCreateXML(test->conn, networkDef); - if (!net || virEventRunDefaultImpl() < 0) { + if (!net) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.startEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -494,9 +498,10 @@ testNetworkDefine(const void *data) /* Make sure the define event is triggered */ net = virNetworkDefineXML(test->conn, networkDef); - if (!net || virEventRunDefaultImpl() < 0) { + if (!net) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.defineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -505,9 +510,7 @@ testNetworkDefine(const void *data) /* Make sure the undefine event is triggered */ virNetworkUndefine(net); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.undefineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -541,9 +544,7 @@ testNetworkStartStopEvent(const void *data) virNetworkCreate(test->net); virNetworkDestroy(test->net); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.startEvents != 1 || counter.stopEvents != 1 || counter.unexpectedEvents > 0) { @@ -572,9 +573,10 @@ testStoragePoolCreateXML(const void *data) &counter, NULL); pool = virStoragePoolCreateXML(test->conn, storagePoolDef, 0); - if (!pool || virEventRunDefaultImpl() < 0) { + if (!pool) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.startEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -607,9 +609,10 @@ testStoragePoolDefine(const void *data) /* Make sure the define event is triggered */ pool = virStoragePoolDefineXML(test->conn, storagePoolDef, 0); - if (!pool || virEventRunDefaultImpl() < 0) { + if (!pool) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.defineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -618,9 +621,7 @@ testStoragePoolDefine(const void *data) /* Make sure the undefine event is triggered */ virStoragePoolUndefine(pool); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.undefineEvents != 1 || counter.unexpectedEvents > 0) { goto cleanup; @@ -659,9 +660,7 @@ testStoragePoolStartStopEvent(const void *data) virStoragePoolRefresh(test->pool, 0); virStoragePoolDestroy(test->pool); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.startEvents != 1 || counter.stopEvents != 1 || refreshCounter != 1 || counter.unexpectedEvents > 0) { @@ -690,9 +689,7 @@ testStoragePoolBuild(const void *data) virStoragePoolBuild(test->pool, 0); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.createdEvents != 1) { goto cleanup; @@ -719,9 +716,7 @@ testStoragePoolDelete(const void *data) virStoragePoolDelete(test->pool, 0); - if (virEventRunDefaultImpl() < 0) { - goto cleanup; - } + virEventRunDefaultImpl(); if (counter.deletedEvents != 1) { goto cleanup; @@ -748,9 +743,10 @@ testNodeDeviceCreateXML(const void *data) dev = virNodeDeviceCreateXML(test->conn, nodeDeviceDef, 0); virNodeDeviceDestroy(dev); - if (!dev || virEventRunDefaultImpl() < 0) { + if (!dev) goto cleanup; - } + + virEventRunDefaultImpl(); if (counter.createdEvents != 1 || counter.deletedEvents != 1 || counter.unexpectedEvents > 0) { diff --git a/tests/qemucapsprobe.c b/tests/qemucapsprobe.c index 76c18f0dcd..47f5b71642 100644 --- a/tests/qemucapsprobe.c +++ b/tests/qemucapsprobe.c @@ -33,10 +33,7 @@ static void eventLoop(void *opaque G_GNUC_UNUSED) { while (1) { - if (virEventRunDefaultImpl() < 0) { - fprintf(stderr, "Failed to run event loop: %s\n", - virGetLastErrorMessage()); - } + virEventRunDefaultImpl(); } } diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c index 16a4096c98..d1a6424167 100644 --- a/tests/qemumonitortestutils.c +++ b/tests/qemumonitortestutils.c @@ -349,13 +349,7 @@ qemuMonitorTestWorker(void *opaque) } } - if (virEventRunDefaultImpl() < 0) { - VIR_WITH_MUTEX_LOCK_GUARD(&test->lock) { - test->quit = true; - test->running = false; - return; - } - } + virEventRunDefaultImpl(); } } diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c index 0e9cd8a81c..9949189eb9 100644 --- a/tests/virnetsockettest.c +++ b/tests/virnetsockettest.c @@ -229,8 +229,7 @@ testSocketAccept(const void *opaque) goto cleanup; while (rsock == NULL) { - if (virEventRunDefaultImpl() < 0) - break; + virEventRunDefaultImpl(); } for (i = 0; i < nlsock; i++) { diff --git a/tools/vsh.c b/tools/vsh.c index 65deaa77e8..75a189bcb7 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -2040,8 +2040,7 @@ vshEventLoop(void *opaque) if (quit) break; - if (virEventRunDefaultImpl() < 0) - vshReportError(ctl); + virEventRunDefaultImpl(); } } -- 2.43.0

vshCompleterFilter() function returns an invariant result, so turn it to void. Remove redundant check which depends on its returning value Fixes: b668054209 ("tools: Use glib memory functions in vshCompleterFilter") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- tools/vsh.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tools/vsh.c b/tools/vsh.c index 75a189bcb7..6b6a677b47 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -2701,7 +2701,7 @@ vshReadlineCommandFindOpt(const vshCmd *partial) } -static int +static void vshCompleterFilter(char ***list, const char *text) { @@ -2711,7 +2711,7 @@ vshCompleterFilter(char ***list, size_t i; if (!list || !*list) - return 0; + return; list_len = g_strv_length(*list); newList = g_new0(char *, list_len + 1); @@ -2729,7 +2729,6 @@ vshCompleterFilter(char ***list, newList = g_renew(char *, newList, newList_len + 1); g_free(*list); *list = newList; - return 0; } @@ -2805,8 +2804,7 @@ vshReadlineParse(const char *text, int state) /* For string list returned by completers we have to do * filtering based on @text because completers returns all * possible strings. */ - if (vshCompleterFilter(&list, text) < 0) - goto cleanup; + vshCompleterFilter(&list, text); } if (list) { @@ -2814,7 +2812,6 @@ vshReadlineParse(const char *text, int state) list_index++; } - cleanup: if (!ret) { g_clear_pointer(&list, g_strfreev); list_index = 0; -- 2.43.0

vshInitDebug() function returns an invariant result, so turn it to void. Remove all redundant checks which depends on its returning value Fixes: 26a137093b ("tools: Use g_strdup_printf() instead of virAsprintf()") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> --- tools/vsh.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tools/vsh.c b/tools/vsh.c index 6b6a677b47..2304037d09 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -2967,7 +2967,7 @@ vshReadlineHistoryAdd(const char *cmd G_GNUC_UNUSED) /* * Initialize debug settings. */ -static int +static void vshInitDebug(vshControl *ctl) { const char *debugEnv; @@ -2999,8 +2999,6 @@ vshInitDebug(vshControl *ctl) vshOpenLogFile(ctl); } } - - return 0; } @@ -3023,8 +3021,9 @@ vshInit(vshControl *ctl, const vshCmdGrp *groups, const vshCmdDef *set) cmdGroups = groups; cmdSet = set; - if (vshInitDebug(ctl) < 0 || - (ctl->imode && vshReadlineInit(ctl) < 0)) + vshInitDebug(ctl); + + if (ctl->imode && vshReadlineInit(ctl) < 0) return false; return true; @@ -3038,8 +3037,7 @@ vshInitReload(vshControl *ctl) return false; } - if (vshInitDebug(ctl) < 0) - return false; + vshInitDebug(ctl); if (ctl->imode) vshReadlineDeinit(ctl); -- 2.43.0
participants (2)
-
Artem Chernyshev
-
Martin Kletzander