Switch from opendir to virDirOpen everywhere we need to report an error. --- src/storage/storage_backend_fs.c | 6 +----- src/storage/storage_backend_iscsi.c | 7 +------ src/storage/storage_backend_scsi.c | 19 +++---------------- src/util/vircgroup.c | 5 +---- src/util/virfile.c | 16 +++------------- src/util/virhostcpu.c | 4 +--- src/util/virnetdev.c | 6 +----- src/util/virnetdevtap.c | 7 +------ src/util/virpci.c | 13 +++---------- src/util/virprocess.c | 2 +- src/util/virscsi.c | 10 ++-------- src/util/virusb.c | 7 +------ src/util/virutil.c | 18 +++--------------- src/xen/xen_inotify.c | 7 ++----- src/xen/xm_internal.c | 6 +----- tests/virschematest.c | 6 +----- tools/nss/libvirt_nss.c | 4 +--- 17 files changed, 27 insertions(+), 116 deletions(-) diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c index 152f9f3..2054309 100644 --- a/src/storage/storage_backend_fs.c +++ b/src/storage/storage_backend_fs.c @@ -900,12 +900,8 @@ virStorageBackendFileSystemRefresh(virConnectPtr conn ATTRIBUTE_UNUSED, int direrr; int fd = -1, ret = -1; - if (!(dir = opendir(pool->def->target.path))) { - virReportSystemError(errno, - _("cannot open path '%s'"), - pool->def->target.path); + if (virDirOpen(&dir, pool->def->target.path) < 0) goto cleanup; - } while ((direrr = virDirRead(dir, &ent, pool->def->target.path)) > 0) { int err; diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c index e50158f..6283837 100644 --- a/src/storage/storage_backend_iscsi.c +++ b/src/storage/storage_backend_iscsi.c @@ -99,13 +99,8 @@ virStorageBackendISCSIGetHostNumber(const char *sysfs_path, virFileWaitForDevices(); - sysdir = opendir(sysfs_path); - - if (sysdir == NULL) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), sysfs_path); + if (virDirOpen(&sysdir, sysfs_path) < 0) goto cleanup; - } while ((direrr = virDirRead(sysdir, &dirent, sysfs_path)) > 0) { if (STREQLEN(dirent->d_name, "target", strlen("target"))) { diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c index b08d960..df683e4 100644 --- a/src/storage/storage_backend_scsi.c +++ b/src/storage/storage_backend_scsi.c @@ -265,12 +265,8 @@ getNewStyleBlockDevice(const char *lun_path, VIR_DEBUG("Looking for block device in '%s'", block_path); - if (!(block_dir = opendir(block_path))) { - virReportSystemError(errno, - _("Failed to opendir sysfs path '%s'"), - block_path); + if (virDirOpen(&block_dir, block_path) < 0) goto cleanup; - } while ((direrr = virDirRead(block_dir, &block_dirent, block_path)) > 0) { if (STREQLEN(block_dirent->d_name, ".", 1)) @@ -353,12 +349,8 @@ getBlockDevice(uint32_t host, host, bus, target, lun) < 0) goto cleanup; - if (!(lun_dir = opendir(lun_path))) { - virReportSystemError(errno, - _("Failed to opendir sysfs path '%s'"), - lun_path); + if (virDirOpen(&lun_dir, lun_path) < 0) goto cleanup; - } while ((direrr = virDirRead(lun_dir, &lun_dirent, lun_path)) > 0) { if (STREQLEN(lun_dirent->d_name, "block", 5)) { @@ -470,13 +462,8 @@ virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, virFileWaitForDevices(); - devicedir = opendir(device_path); - - if (devicedir == NULL) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), device_path); + if (virDirOpen(&devicedir, device_path) < 0) return -1; - } snprintf(devicepattern, sizeof(devicepattern), "%u:%%u:%%u:%%u\n", scanhost); diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index c76c94f..ce9b942 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -3957,11 +3957,8 @@ int virCgroupSetOwner(virCgroupPtr cgroup, cgroup->controllers[i].placement) < 0) goto cleanup; - if (!(dh = opendir(base))) { - virReportSystemError(errno, - _("Unable to open dir '%s'"), base); + if (virDirOpen(&dh, base) < 0) goto cleanup; - } while ((direrr = virDirRead(dh, &de, base)) > 0) { if (STREQ(de->d_name, ".") || diff --git a/src/util/virfile.c b/src/util/virfile.c index aac0324..7dee3d9 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -614,11 +614,8 @@ static int virFileLoopDeviceOpenSearch(char **dev_name) VIR_DEBUG("Looking for loop devices in /dev"); - if (!(dh = opendir("/dev"))) { - virReportSystemError(errno, "%s", - _("Unable to read /dev")); + if (virDirOpen(&dh, "/dev") < 0) goto cleanup; - } while ((direrr = virDirRead(dh, &de, "/dev")) > 0) { /* Checking 'loop' prefix is insufficient, since @@ -782,12 +779,8 @@ virFileNBDDeviceFindUnused(void) struct dirent *de; int direrr; - if (!(dh = opendir(SYSFS_BLOCK_DIR))) { - virReportSystemError(errno, - _("Cannot read directory %s"), - SYSFS_BLOCK_DIR); + if (virDirOpen(&dh, SYSFS_BLOCK_DIR) < 0) return NULL; - } while ((direrr = virDirRead(dh, &de, SYSFS_BLOCK_DIR)) > 0) { if (STRPREFIX(de->d_name, "nbd")) { @@ -942,11 +935,8 @@ int virFileDeleteTree(const char *dir) if (!dir || !virFileExists(dir)) return 0; - if (!(dh = opendir(dir))) { - virReportSystemError(errno, _("Cannot open dir '%s'"), - dir); + if (virDirOpen(&dh, dir) < 0) return -1; - } while ((direrr = virDirRead(dh, &de, dir)) > 0) { struct stat sb; diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 6883466..087ce22 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -339,10 +339,8 @@ virHostCPUParseNode(const char *node, *cores = 0; *sockets = 0; - if (!(cpudir = opendir(node))) { - virReportSystemError(errno, _("cannot opendir %s"), node); + if (virDirOpen(&cpudir, node) < 0) goto cleanup; - } /* Keep track of the CPUs that belong to the current node */ if (!(node_cpus_map = virBitmapNew(npresent_cpus))) diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 75ec484..84406de 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -3157,12 +3157,8 @@ virNetDevRDMAFeature(const char *ifname, if (!virFileExists(SYSFS_INFINIBAND_DIR)) return 0; - if (!(dirp = opendir(SYSFS_INFINIBAND_DIR))) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), - SYSFS_INFINIBAND_DIR); + if (virDirOpen(&dirp, SYSFS_INFINIBAND_DIR) < 0) return -1; - } if (virAsprintf(ð_devpath, SYSFS_NET_DIR "%s/device/resource", ifname) < 0) goto cleanup; diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c index eec7614..98e27bb 100644 --- a/src/util/virnetdevtap.c +++ b/src/util/virnetdevtap.c @@ -98,13 +98,8 @@ virNetDevTapGetRealDeviceName(char *ifname ATTRIBUTE_UNUSED) char *devpath = NULL; int fd; - DIR *dirp = opendir("/dev"); - if (dirp == NULL) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), - "/dev"); + if (virDirOpen(&dirp, "/dev") < 0) return NULL; - } while (virDirRead(dirp, &dp, "/dev") > 0) { if (STRPREFIX(dp->d_name, "tap")) { diff --git a/src/util/virpci.c b/src/util/virpci.c index 5cb5d3a..77ae9b4 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -460,11 +460,8 @@ virPCIDeviceIterDevices(virPCIDeviceIterPredicate predicate, VIR_DEBUG("%s %s: iterating over " PCI_SYSFS "devices", dev->id, dev->name); - dir = opendir(PCI_SYSFS "devices"); - if (!dir) { - VIR_WARN("Failed to open " PCI_SYSFS "devices"); + if (virDirOpen(&dir, PCI_SYSFS "devices") < 0) return -1; - } while ((ret = virDirRead(dir, &entry, PCI_SYSFS "devices")) > 0) { unsigned int domain, bus, slot, function; @@ -1962,11 +1959,8 @@ int virPCIDeviceFileIterate(virPCIDevicePtr dev, dev->address.slot, dev->address.function) < 0) goto cleanup; - if (!(dir = opendir(pcidir))) { - virReportSystemError(errno, - _("cannot open %s"), pcidir); + if (virDirOpen(&dir, pcidir) < 0) goto cleanup; - } while ((direrr = virDirRead(dir, &ent, pcidir)) > 0) { /* Device assignment requires: @@ -2696,8 +2690,7 @@ virPCIGetNetName(char *device_link_sysfs_path, char **netname) return -1; } - dir = opendir(pcidev_sysfs_net_path); - if (dir == NULL) + if (virDirOpen(&dir, pcidev_sysfs_net_path) < 0) goto out; while (virDirRead(dir, &entry, pcidev_sysfs_net_path) > 0) { diff --git a/src/util/virprocess.c b/src/util/virprocess.c index b0ca1ce..a3e7f4e 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -612,7 +612,7 @@ int virProcessGetPids(pid_t pid, size_t *npids, pid_t **pids) (unsigned long long)pid) < 0) goto cleanup; - if (!(dir = opendir(taskPath))) + if (virDirOpen(&dir, taskPath) < 0) goto cleanup; while ((value = virDirRead(dir, &ent, taskPath)) > 0) { diff --git a/src/util/virscsi.c b/src/util/virscsi.c index 72a5661..0f57494 100644 --- a/src/util/virscsi.c +++ b/src/util/virscsi.c @@ -127,11 +127,8 @@ virSCSIDeviceGetSgName(const char *sysfs_prefix, prefix, adapter_id, bus, target, unit) < 0) return NULL; - if (!(dir = opendir(path))) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Failed to open %s"), path); + if (virDirOpen(&dir, path) < 0) goto cleanup; - } while (virDirRead(dir, &entry, path) > 0) { if (entry->d_name[0] == '.') @@ -173,11 +170,8 @@ virSCSIDeviceGetDevName(const char *sysfs_prefix, prefix, adapter_id, bus, target, unit) < 0) return NULL; - if (!(dir = opendir(path))) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Failed to open %s"), path); + if (virDirOpen(&dir, path) < 0) goto cleanup; - } while (virDirRead(dir, &entry, path) > 0) { if (entry->d_name[0] == '.') diff --git a/src/util/virusb.c b/src/util/virusb.c index 33b188e..1db8173 100644 --- a/src/util/virusb.c +++ b/src/util/virusb.c @@ -138,13 +138,8 @@ virUSBDeviceSearch(unsigned int vendor, if (!(list = virUSBDeviceListNew())) goto cleanup; - dir = opendir(USB_SYSFS "/devices"); - if (!dir) { - virReportSystemError(errno, - _("Could not open directory %s"), - USB_SYSFS "/devices"); + if (virDirOpen(&dir, USB_SYSFS "/devices") < 0) goto cleanup; - } while ((direrr = virDirRead(dir, &de, USB_SYSFS "/devices")) > 0) { unsigned int found_prod, found_vend, found_bus, found_devno; diff --git a/src/util/virutil.c b/src/util/virutil.c index a6c1273..46313c2 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -1860,12 +1860,8 @@ virFindSCSIHostByPCI(const char *sysfs_prefix, char *unique_path = NULL; unsigned int read_unique_id; - if (!(dir = opendir(prefix))) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), - prefix); + if (virDirOpen(&dir, prefix) < 0) return NULL; - } while (virDirRead(dir, &entry, prefix) > 0) { if (entry->d_name[0] == '.' || !virFileIsLink(entry->d_name)) @@ -2198,12 +2194,8 @@ virGetFCHostNameByWWN(const char *sysfs_prefix, char *p; char *ret = NULL; - if (!(dir = opendir(prefix))) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), - prefix); + if (virDirOpen(&dir, prefix) < 0) return NULL; - } # define READ_WWN(wwn_path, buf) \ do { \ @@ -2292,12 +2284,8 @@ virFindFCHostCapableVport(const char *sysfs_prefix) char *state = NULL; char *ret = NULL; - if (!(dir = opendir(prefix))) { - virReportSystemError(errno, - _("Failed to opendir path '%s'"), - prefix); + if (virDirOpen(&dir, prefix) < 0) return NULL; - } while (virDirRead(dir, &entry, prefix) > 0) { unsigned int host; diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c index cd169e0..ac4070c 100644 --- a/src/xen/xen_inotify.c +++ b/src/xen/xen_inotify.c @@ -360,12 +360,9 @@ xenInotifyOpen(virConnectPtr conn, return -1; /* populate initial list */ - if (!(dh = opendir(priv->configDir))) { - virReportSystemError(errno, - _("cannot open directory: %s"), - priv->configDir); + if (virDirOpen(&dh, priv->configDir) < 0) return -1; - } + while ((direrr = virDirRead(dh, &ent, priv->configDir)) > 0) { if (STRPREFIX(ent->d_name, ".")) continue; diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index e7ac57e..3c34652 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -319,12 +319,8 @@ xenXMConfigCacheRefresh(virConnectPtr conn) priv->lastRefresh = now; /* Process the files in the config dir */ - if (!(dh = opendir(priv->configDir))) { - virReportSystemError(errno, - _("cannot read directory %s"), - priv->configDir); + if (virDirOpen(&dh, priv->configDir) < 0) return -1; - } while ((ret = virDirRead(dh, &ent, priv->configDir)) > 0) { struct stat st; diff --git a/tests/virschematest.c b/tests/virschematest.c index 14a9e20..c372c43 100644 --- a/tests/virschematest.c +++ b/tests/virschematest.c @@ -80,12 +80,8 @@ testSchemaDir(const char *schema, .validator = validator, }; - if (!(dir = opendir(dir_path))) { - virReportSystemError(errno, - "Failed to opendir path '%s'", - dir_path); + if (virDirOpen(&dir, dir_path) < 0) return -1; - } while ((rc = virDirRead(dir, &ent, dir_path)) > 0) { if (!virFileHasSuffix(ent->d_name, ".xml")) diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c index d179514..724cb06 100644 --- a/tools/nss/libvirt_nss.c +++ b/tools/nss/libvirt_nss.c @@ -125,10 +125,8 @@ findLease(const char *name, } - if (!(dir = opendir(leaseDir))) { - ERROR("Failed to open dir '%s'", leaseDir); + if (virDirOpen(&dir, leaseDir) < 0) goto cleanup; - } if (!(leases_array = virJSONValueNewArray())) { ERROR("Failed to create json array"); -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list