[libvirt PATCH 7/7] storage: use g_new0 instead of VIR_ALLOC*

Ján Tomko jtomko at redhat.com
Fri Sep 25 13:16:13 UTC 2020


Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/storage/storage_backend_disk.c         |  6 ++--
 src/storage/storage_backend_fs.c           |  8 ++---
 src/storage/storage_backend_gluster.c      | 12 +++-----
 src/storage/storage_backend_iscsi.c        |  8 ++---
 src/storage/storage_backend_iscsi_direct.c | 13 ++++-----
 src/storage/storage_backend_logical.c      |  6 ++--
 src/storage/storage_backend_mpath.c        |  3 +-
 src/storage/storage_backend_rbd.c          | 29 +++++++-----------
 src/storage/storage_backend_scsi.c         |  4 +--
 src/storage/storage_backend_sheepdog.c     |  3 +-
 src/storage/storage_backend_zfs.c          |  3 +-
 src/storage/storage_driver.c               | 14 +++------
 src/storage/storage_file_fs.c              |  3 +-
 src/storage/storage_file_gluster.c         |  6 ++--
 src/storage/storage_util.c                 | 34 ++++++++--------------
 15 files changed, 52 insertions(+), 100 deletions(-)

diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
index ec0679d353..af90f3fc45 100644
--- a/src/storage/storage_backend_disk.c
+++ b/src/storage/storage_backend_disk.c
@@ -74,8 +74,7 @@ virStorageBackendDiskMakeDataVol(virStoragePoolObjPtr pool,
          * we're discovering the existing partitions for the pool
          */
         addVol = true;
-        if (VIR_ALLOC(vol) < 0)
-            return -1;
+        vol = g_new0(virStorageVolDef, 1);
         vol->name = g_strdup(partname);
     }
 
@@ -132,8 +131,7 @@ virStorageBackendDiskMakeDataVol(virStoragePoolObjPtr pool,
     }
 
     if (vol->source.extents == NULL) {
-        if (VIR_ALLOC(vol->source.extents) < 0)
-            goto error;
+        vol->source.extents = g_new0(virStorageVolSourceExtent, 1);
         vol->source.nextent = 1;
 
         if (virStrToLong_ull(groups[3], NULL, 10,
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 30c2367df4..b98d06c644 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -76,8 +76,7 @@ virStorageBackendFileSystemNetFindPoolSourcesFunc(char **const groups,
     if (!(src = virStoragePoolSourceListNewSource(&state->list)))
         return -1;
 
-    if (VIR_ALLOC_N(src->hosts, 1) < 0)
-        return -1;
+    src->hosts = g_new0(virStoragePoolSourceHost, 1);
     src->nhost = 1;
 
     src->hosts[0].name = g_strdup(state->host);
@@ -576,9 +575,8 @@ virStoragePoolDefFSNamespaceParse(xmlXPathContextPtr ctxt,
     if (nnodes == 0)
         return 0;
 
-    if (VIR_ALLOC(cmdopts) < 0 ||
-        VIR_ALLOC_N(cmdopts->options, nnodes) < 0)
-        goto cleanup;
+    cmdopts = g_new0(virStoragePoolFSMountOptionsDef, 1);
+    cmdopts->options = g_new0(char *, nnodes);
 
     for (i = 0; i < nnodes; i++) {
         if (!(cmdopts->options[cmdopts->noptions] =
diff --git a/src/storage/storage_backend_gluster.c b/src/storage/storage_backend_gluster.c
index 4763a569e3..6c99c270da 100644
--- a/src/storage/storage_backend_gluster.c
+++ b/src/storage/storage_backend_gluster.c
@@ -97,16 +97,14 @@ virStorageBackendGlusterOpen(virStoragePoolObjPtr pool)
             trailing_slash = false;
     }
 
-    if (VIR_ALLOC(ret) < 0)
-        return NULL;
+    ret = g_new0(virStorageBackendGlusterState, 1);
 
     ret->volname = g_strdup(name);
     ret->dir = g_strdup_printf("%s%s", dir ? dir : "/", trailing_slash ? "" : "/");
 
     /* FIXME: Currently hard-coded to tcp transport; XML needs to be
      * extended to allow alternate transport */
-    if (VIR_ALLOC(ret->uri) < 0)
-        goto error;
+    ret->uri = g_new0(virURI, 1);
     ret->uri->scheme = g_strdup("gluster");
     ret->uri->server = g_strdup(def->source.hosts[0].name);
     ret->uri->path = g_strdup_printf("/%s%s", ret->volname, ret->dir);
@@ -151,8 +149,7 @@ virStorageBackendGlusterRead(glfs_fd_t *fd,
     char *s;
     size_t nread = 0;
 
-    if (VIR_ALLOC_N(*buf, len) < 0)
-        return -1;
+    *buf = g_new0(char, len);
 
     s = *buf;
     while (len) {
@@ -245,8 +242,7 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state,
         return ret;
     }
 
-    if (VIR_ALLOC(vol) < 0)
-        goto cleanup;
+    vol = g_new0(virStorageVolDef, 1);
 
     if (virStorageBackendUpdateVolTargetInfoFD(&vol->target, -1, st) < 0)
         goto cleanup;
diff --git a/src/storage/storage_backend_iscsi.c b/src/storage/storage_backend_iscsi.c
index 32892e1d75..436d5e09c7 100644
--- a/src/storage/storage_backend_iscsi.c
+++ b/src/storage/storage_backend_iscsi.c
@@ -189,13 +189,11 @@ virStorageBackendISCSIFindPoolSources(const char *srcSpec,
                             &ntargets, &targets) < 0)
         goto cleanup;
 
-    if (VIR_ALLOC_N(list.sources, ntargets) < 0)
-        goto cleanup;
+    list.sources = g_new0(virStoragePoolSource, ntargets);
 
     for (i = 0; i < ntargets; i++) {
-        if (VIR_ALLOC_N(list.sources[i].devices, 1) < 0 ||
-            VIR_ALLOC_N(list.sources[i].hosts, 1) < 0)
-            goto cleanup;
+        list.sources[i].devices = g_new0(virStoragePoolSourceDevice, 1);
+        list.sources[i].hosts = g_new0(virStoragePoolSourceHost, 1);
         list.sources[i].nhost = 1;
         list.sources[i].hosts[0] = source->hosts[0];
         list.sources[i].initiator = source->initiator;
diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c
index 027fa83de7..66ceb48e6a 100644
--- a/src/storage/storage_backend_iscsi_direct.c
+++ b/src/storage/storage_backend_iscsi_direct.c
@@ -309,8 +309,7 @@ virISCSIDirectRefreshVol(virStoragePoolObjPtr pool,
     if (virISCSIDirectTestUnitReady(iscsi, lun) < 0)
         return -1;
 
-    if (VIR_ALLOC(vol) < 0)
-        return -1;
+    vol = g_new0(virStorageVolDef, 1);
 
     vol->type = VIR_STORAGE_VOL_NETWORK;
 
@@ -518,13 +517,11 @@ virStorageBackendISCSIDirectFindPoolSources(const char *srcSpec,
     if (virISCSIDirectScanTargets(source->initiator.iqn, portal, &ntargets, &targets) < 0)
         goto cleanup;
 
-    if (VIR_ALLOC_N(list.sources, ntargets) < 0)
-        goto cleanup;
+    list.sources = g_new0(virStoragePoolSource, ntargets);
 
     for (i = 0; i < ntargets; i++) {
-        if (VIR_ALLOC_N(list.sources[i].devices, 1) < 0 ||
-            VIR_ALLOC_N(list.sources[i].hosts, 1) < 0)
-            goto cleanup;
+        list.sources[i].devices = g_new0(virStoragePoolSourceDevice, 1);
+        list.sources[i].hosts = g_new0(virStoragePoolSourceHost, 1);
         list.sources[i].nhost = 1;
         list.sources[i].hosts[0] = source->hosts[0];
         list.sources[i].initiator = source->initiator;
@@ -628,7 +625,7 @@ virStorageBackendISCSIDirectVolWipeZero(virStorageVolDefPtr vol,
         return ret;
     if (virISCSIDirectGetVolumeCapacity(iscsi, lun, &block_size, &nb_block))
         return ret;
-    if (VIR_ALLOC_N(data, block_size * BLOCK_PER_PACKET))
+    data = g_new0(unsigned char, block_size * BLOCK_PER_PACKET);
         return ret;
 
     while (lba < nb_block) {
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index e3debc390c..ead3dab4fd 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -161,8 +161,7 @@ virStorageBackendLogicalParseVolExtents(virStorageVolDefPtr vol,
     }
 
     /* Allocate space for 'nextents' regex_unit strings plus a comma for each */
-    if (VIR_ALLOC_N(regex, nextents * (strlen(regex_unit) + 1) + 1) < 0)
-        goto cleanup;
+    regex = g_new0(char, nextents * (strlen(regex_unit) + 1) + 1);
     strcat(regex, regex_unit);
     for (i = 1; i < nextents; i++) {
         /* "," is the separator of "devices" field */
@@ -252,8 +251,7 @@ virStorageBackendLogicalMakeVol(char **const groups,
 
     /* Or a completely new volume */
     if (vol == NULL) {
-        if (VIR_ALLOC(vol) < 0)
-            return -1;
+        vol = g_new0(virStorageVolDef, 1);
 
         is_new_vol = true;
         vol->type = VIR_STORAGE_VOL_BLOCK;
diff --git a/src/storage/storage_backend_mpath.c b/src/storage/storage_backend_mpath.c
index f474ab32a9..20e9b34bbf 100644
--- a/src/storage/storage_backend_mpath.c
+++ b/src/storage/storage_backend_mpath.c
@@ -49,8 +49,7 @@ virStorageBackendMpathNewVol(virStoragePoolObjPtr pool,
     virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
     g_autoptr(virStorageVolDef) vol = NULL;
 
-    if (VIR_ALLOC(vol) < 0)
-        return -1;
+    vol = g_new0(virStorageVolDef, 1);
 
     vol->type = VIR_STORAGE_VOL_BLOCK;
 
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 09928fdc3c..1630d6eede 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -94,12 +94,10 @@ virStoragePoolDefRBDNamespaceParse(xmlXPathContextPtr ctxt,
     if (nnodes == 0)
         return 0;
 
-    if (VIR_ALLOC(cmdopts) < 0)
-        goto cleanup;
+    cmdopts = g_new0(virStoragePoolRBDConfigOptionsDef, 1);
 
-    if (VIR_ALLOC_N(cmdopts->names, nnodes) < 0 ||
-        VIR_ALLOC_N(cmdopts->values, nnodes) < 0)
-        goto cleanup;
+    cmdopts->names = g_new0(char *, nnodes);
+    cmdopts->values = g_new0(char *, nnodes);
 
     for (i = 0; i < nnodes; i++) {
         if (!(cmdopts->names[cmdopts->noptions] =
@@ -384,8 +382,7 @@ virStorageBackendRBDNewState(virStoragePoolObjPtr pool)
     virStorageBackendRBDStatePtr ptr;
     virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
 
-    if (VIR_ALLOC(ptr) < 0)
-        return NULL;
+    ptr = g_new0(virStorageBackendRBDState, 1);
 
     if (virStorageBackendRBDOpenRADOSConn(ptr, def) < 0)
         goto error;
@@ -604,8 +601,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
         }
     }
 
-    if (VIR_ALLOC_N(names, nimages + 1) < 0)
-        goto error;
+    names = g_new0(char *, nimages + 1);
     nnames = nimages;
 
     for (i = 0; i < nimages; i++)
@@ -633,8 +629,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
     const char *name;
 
     while (true) {
-        if (VIR_ALLOC_N(namebuf, max_size) < 0)
-            goto error;
+        namebuf = g_new0(char, max_size);
 
         rc = rbd_list(ptr->ioctx, namebuf, &max_size);
         if (rc >= 0)
@@ -712,8 +707,7 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
     for (i = 0; names[i] != NULL; i++) {
         g_autoptr(virStorageVolDef) vol = NULL;
 
-        if (VIR_ALLOC(vol) < 0)
-            goto cleanup;
+        vol = g_new0(virStorageVolDef, 1);
 
         vol->name = g_steal_pointer(&names[i]);
 
@@ -770,8 +764,7 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
     }
 
     do {
-        if (VIR_ALLOC_N(snaps, max_snaps))
-            goto cleanup;
+        snaps = g_new0(rbd_snap_info_t, max_snaps);
 
         snap_count = rbd_snap_list(image, snaps, &max_snaps);
         if (snap_count <= 0)
@@ -1028,8 +1021,7 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
     }
 
     do {
-        if (VIR_ALLOC_N(snaps, max_snaps))
-            goto cleanup;
+        snaps = g_new0(rbd_snap_info_t, max_snaps);
 
         snap_count = rbd_snap_list(image, snaps, &max_snaps);
         if (snap_count <= 0)
@@ -1320,8 +1312,7 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
     unsigned long long length;
     g_autofree char *writebuf = NULL;
 
-    if (VIR_ALLOC_N(writebuf, info->obj_size * stripe_count) < 0)
-        return -1;
+    writebuf = g_new0(char, info->obj_size * stripe_count);
 
     while (offset < info->size) {
         length = MIN((info->size - offset), (info->obj_size * stripe_count));
diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c
index b5866935d1..69a01d1a24 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -329,9 +329,7 @@ createVport(virStoragePoolDefPtr def,
      * retry logic set to true. If the thread isn't created, then no big
      * deal since it's still possible to refresh the pool later.
      */
-    if (VIR_ALLOC(cbdata) < 0)
-        return -1;
-
+    cbdata = g_new0(virStoragePoolFCRefreshInfo, 1);
     memcpy(cbdata->pool_uuid, def->uuid, VIR_UUID_BUFLEN);
     cbdata->fchost_name = g_steal_pointer(&name);
 
diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
index f253c0ed57..12ff9f44d0 100644
--- a/src/storage/storage_backend_sheepdog.c
+++ b/src/storage/storage_backend_sheepdog.c
@@ -118,8 +118,7 @@ virStorageBackendSheepdogAddVolume(virStoragePoolObjPtr pool, const char *diskIn
         return -1;
     }
 
-    if (VIR_ALLOC(vol) < 0)
-        return -1;
+    vol = g_new0(virStorageVolDef, 1);
 
     vol->name = g_strdup(diskInfo);
 
diff --git a/src/storage/storage_backend_zfs.c b/src/storage/storage_backend_zfs.c
index dc692f47ed..4a89f98350 100644
--- a/src/storage/storage_backend_zfs.c
+++ b/src/storage/storage_backend_zfs.c
@@ -121,8 +121,7 @@ virStorageBackendZFSParseVol(virStoragePoolObjPtr pool,
         volume = vol;
 
     if (volume == NULL) {
-        if (VIR_ALLOC(volume) < 0)
-            goto cleanup;
+        volume = g_new0(virStorageVolDef, 1);
 
         is_new_vol = true;
         volume->type = VIR_STORAGE_VOL_BLOCK;
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 9e79dbe1e4..16bc53aa46 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -265,8 +265,7 @@ storageStateInitialize(bool privileged,
         return -1;
     }
 
-    if (VIR_ALLOC(driver) < 0)
-        return VIR_DRV_STATE_INIT_ERROR;
+    driver = g_new0(virStorageDriverState, 1);
 
     driver->lockFD = -1;
     if (virMutexInit(&driver->lock) < 0) {
@@ -1956,10 +1955,7 @@ storageVolCreateXML(virStoragePoolPtr pool,
         int buildret;
         virStorageVolDefPtr buildvoldef = NULL;
 
-        if (VIR_ALLOC(buildvoldef) < 0) {
-            voldef = NULL;
-            goto cleanup;
-        }
+        buildvoldef = g_new0(virStorageVolDef, 1);
 
         /* Make a shallow copy of the 'defined' volume definition, since the
          * original allocation value will change as the user polls 'info',
@@ -2143,8 +2139,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool,
      * original allocation value will change as the user polls 'info',
      * but we only need the initial requested values
      */
-    if (VIR_ALLOC(shadowvol) < 0)
-        goto cleanup;
+    shadowvol = g_new0(virStorageVolDef, 1);
 
     memcpy(shadowvol, voldef, sizeof(*voldef));
 
@@ -2428,8 +2423,7 @@ storageVolUpload(virStorageVolPtr vol,
      * interaction and we can just lookup the backend in the callback
      * routine in order to call the refresh API.
      */
-    if (VIR_ALLOC(cbdata) < 0)
-        goto cleanup;
+    cbdata = g_new0(virStorageVolStreamInfo, 1);
     cbdata->pool_name = g_strdup(def->name);
     if (voldef->type == VIR_STORAGE_VOL_PLOOP)
         cbdata->vol_path = g_strdup(voldef->target.path);
diff --git a/src/storage/storage_file_fs.c b/src/storage/storage_file_fs.c
index 8d9023bead..b379a8ca8e 100644
--- a/src/storage/storage_file_fs.c
+++ b/src/storage/storage_file_fs.c
@@ -73,8 +73,7 @@ virStorageFileBackendFileInit(virStorageSourcePtr src)
               src->path,
               (unsigned int)src->drv->uid, (unsigned int)src->drv->gid);
 
-    if (VIR_ALLOC(priv) < 0)
-        return -1;
+    priv = g_new0(virStorageFileBackendFsPriv, 1);
 
     src->drv->priv = priv;
 
diff --git a/src/storage/storage_file_gluster.c b/src/storage/storage_file_gluster.c
index 608f93d2f6..c84af8a4e8 100644
--- a/src/storage/storage_file_gluster.c
+++ b/src/storage/storage_file_gluster.c
@@ -109,8 +109,7 @@ virStorageFileBackendGlusterInit(virStorageSourcePtr src)
         return -1;
     }
 
-    if (VIR_ALLOC(priv) < 0)
-        return -1;
+    priv = g_new0(virStorageFileBackendGlusterPriv, 1);
 
     VIR_DEBUG("initializing gluster storage file %p "
               "(priv='%p' volume='%s' path='%s') as [%u:%u]",
@@ -209,8 +208,7 @@ virStorageFileBackendGlusterRead(virStorageSourcePtr src,
     }
 
 
-    if (VIR_ALLOC_N(*buf, len) < 0)
-        return -1;
+    *buf = g_new0(char, len);
 
     s = *buf;
     while (len) {
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index 7fc529046a..21ad54ac54 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -154,11 +154,9 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol,
     if (wbytes < WRITE_BLOCK_SIZE_DEFAULT)
         wbytes = WRITE_BLOCK_SIZE_DEFAULT;
 
-    if (VIR_ALLOC_N(zerobuf, wbytes) < 0)
-        return -errno;
+    zerobuf = g_new0(char, wbytes);
 
-    if (VIR_ALLOC_N(buf, rbytes) < 0)
-        return -errno;
+    buf = g_new0(char, rbytes);
 
     if (reflink_copy) {
         if (reflinkCloneFile(fd, inputfd) < 0) {
@@ -1839,14 +1837,14 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageSourcePtr target,
     if (virStorageSourceUpdateBackingSizes(target, fd, sb) < 0)
         return -1;
 
-    if (!target->perms && VIR_ALLOC(target->perms) < 0)
-        return -1;
+    if (!target->perms)
+        target->perms = g_new0(virStoragePerms, 1);
     target->perms->mode = sb->st_mode & S_IRWXUGO;
     target->perms->uid = sb->st_uid;
     target->perms->gid = sb->st_gid;
 
-    if (!target->timestamps && VIR_ALLOC(target->timestamps) < 0)
-        return -1;
+    if (!target->timestamps)
+        target->timestamps = g_new0(virStorageTimestamps, 1);
 
 #ifdef __APPLE__
     target->timestamps->atime = sb->st_atimespec;
@@ -2214,12 +2212,8 @@ storageBackendLoadDefaultSecrets(virStorageVolDefPtr vol)
     if (!sec)
         return 0;
 
-    if (VIR_ALLOC_N(vol->target.encryption->secrets, 1) < 0 ||
-        VIR_ALLOC(encsec) < 0) {
-        VIR_FREE(vol->target.encryption->secrets);
-        virObjectUnref(sec);
-        return -1;
-    }
+    vol->target.encryption->secrets = g_new0(virStorageEncryptionSecretPtr, 1);
+    encsec = g_new0(virStorageEncryptionSecret, 1);
 
     vol->target.encryption->nsecrets = 1;
     vol->target.encryption->secrets[0] = encsec;
@@ -2528,8 +2522,7 @@ storageBackendWipeLocal(const char *path,
     off_t size;
     g_autofree char *writebuf = NULL;
 
-    if (VIR_ALLOC_N(writebuf, writebuf_length) < 0)
-        return -1;
+    writebuf = g_new0(char, writebuf_length);
 
     if (!zero_end) {
         if ((size = lseek(fd, 0, SEEK_SET)) < 0) {
@@ -2873,8 +2866,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host,
             goto cleanup;
         }
 
-        if (VIR_ALLOC_N(src->hosts, 1) < 0)
-            goto cleanup;
+        src->hosts = g_new0(virStoragePoolSourceHost, 1);
         src->nhost = 1;
 
         src->hosts[0].name = g_strdup(host);
@@ -3535,8 +3527,7 @@ virStorageBackendRefreshLocal(virStoragePoolObjPtr pool)
             continue;
         }
 
-        if (VIR_ALLOC(vol) < 0)
-            goto cleanup;
+        vol = g_new0(virStorageVolDef, 1);
 
         vol->name = g_strdup(ent->d_name);
 
@@ -3671,8 +3662,7 @@ virStorageBackendSCSINewLun(virStoragePoolObjPtr pool,
         return -1;
     }
 
-    if (VIR_ALLOC(vol) < 0)
-        return -1;
+    vol = g_new0(virStorageVolDef, 1);
 
     vol->type = VIR_STORAGE_VOL_BLOCK;
 
-- 
2.26.2




More information about the libvir-list mailing list