[libvirt] [PATCH] storage_driver.c: remove two useless calls to virStorageBackendForType

Daniel Veillard veillard at redhat.com
Fri Sep 4 16:59:14 UTC 2009


On Fri, Sep 04, 2009 at 05:19:21PM +0200, Jim Meyering wrote:
> >From dead-store warnings:
> 
> >From c925b02828083a016f7b9a7ae93eb3a7bf5f4609 Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Fri, 4 Sep 2009 17:18:29 +0200
> Subject: [PATCH] storage_driver.c: remove two useless calls to virStorageBackendForType
> 
> * src/storage_driver.c (storagePoolGetInfo, storagePoolDefine):
> The result was never used, and the function has no side effects.
> ---
>  src/storage_driver.c |    8 --------
>  1 files changed, 0 insertions(+), 8 deletions(-)
> 
> diff --git a/src/storage_driver.c b/src/storage_driver.c
> index e9ecb20..e8d43b7 100644
> --- a/src/storage_driver.c
> +++ b/src/storage_driver.c
> @@ -519,15 +519,11 @@ storagePoolDefine(virConnectPtr conn,
>      virStoragePoolDefPtr def;
>      virStoragePoolObjPtr pool = NULL;
>      virStoragePoolPtr ret = NULL;
> -    virStorageBackendPtr backend;
> 
>      storageDriverLock(driver);
>      if (!(def = virStoragePoolDefParseString(conn, xml)))
>          goto cleanup;
> 
> -    if ((backend = virStorageBackendForType(def->type)) == NULL)
> -        goto cleanup;
> -
>      if (!(pool = virStoragePoolObjAssignDef(conn, &driver->pools, def)))
>          goto cleanup;
> 
> @@ -847,7 +843,6 @@ storagePoolGetInfo(virStoragePoolPtr obj,
>                     virStoragePoolInfoPtr info) {
>      virStorageDriverStatePtr driver = obj->conn->storagePrivateData;
>      virStoragePoolObjPtr pool;
> -    virStorageBackendPtr backend;
>      int ret = -1;
> 
>      storageDriverLock(driver);
> @@ -860,9 +855,6 @@ storagePoolGetInfo(virStoragePoolPtr obj,
>          goto cleanup;
>      }
> 
> -    if ((backend = virStorageBackendForType(pool->def->type)) == NULL)
> -        goto cleanup;
> -
>      memset(info, 0, sizeof(virStoragePoolInfo));
>      if (pool->active)
>          info->state = VIR_STORAGE_POOL_RUNNING;

  Hum ... I'm afraid it changes the semantic. If
  virStorageBackendForType fails because def->type is not one of the
  registered type for storage backend.

It seems that def->type is assigned in virStoragePoolDefParseXML() with

   if ((ret->type = virStoragePoolTypeFromString((const char *)type)) <
   0) {

so there we check that the type matches a StoragePoolType but a storage
backend type might be a subset.

  To be safe I would just remove the variable but keep

    if ((virStorageBackendForType(pool->def->type)) == NULL)
        goto cleanup;

checks and exits. Then we are sure to keep the semantic.

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list