[libvirt] [PATCH 11/40] Simplify the Xen domain is persistent driver method

Jim Fehlig jfehlig at suse.com
Mon May 6 21:10:13 UTC 2013


Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Unconditionally call xenDaemonLookupByUUID, since the XenD
> driver must always be present.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  src/xen/xen_driver.c | 41 +++++++++++++++++++----------------------
>  1 file changed, 19 insertions(+), 22 deletions(-)
>   

ACK.

Regards,
Jim

> diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
> index 080045c..5f296ad 100644
> --- a/src/xen/xen_driver.c
> +++ b/src/xen/xen_driver.c
> @@ -691,29 +691,26 @@ xenUnifiedDomainIsPersistent(virDomainPtr dom)
>              ret = 0;
>      } else {
>          /* New Xen with inactive domain management */
> -        if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) {
> -            currdom = xenDaemonLookupByUUID(dom->conn, dom->uuid);
> -            if (currdom) {
> -                if (currdom->id == -1) {
> -                    /* If its inactive, then trivially, it must be persistent */
> -                    ret = 1;
> -                } else {
> -                    char *path;
> -                    char uuidstr[VIR_UUID_STRING_BUFLEN];
> -
> -                    /* If its running there's no official way to tell, so we
> -                     * go behind xend's back & look at the config dir */
> -
> -                    virUUIDFormat(dom->uuid, uuidstr);
> -                    if (virAsprintf(&path, "%s/%s", XEND_DOMAINS_DIR, uuidstr) < 0) {
> -                        virReportOOMError();
> -                        goto done;
> -                    }
> -                    if (access(path, R_OK) == 0)
> -                        ret = 1;
> -                    else if (errno == ENOENT)
> -                        ret = 0;
> +        currdom = xenDaemonLookupByUUID(dom->conn, dom->uuid);
> +        if (currdom) {
> +            if (currdom->id == -1) {
> +                /* If its inactive, then trivially, it must be persistent */
> +                ret = 1;
> +            } else {
> +                char *path;
> +                char uuidstr[VIR_UUID_STRING_BUFLEN];
> +
> +                /* If its running there's no official way to tell, so we
> +                 * go behind xend's back & look at the config dir */
> +                virUUIDFormat(dom->uuid, uuidstr);
> +                if (virAsprintf(&path, "%s/%s", XEND_DOMAINS_DIR, uuidstr) < 0) {
> +                    virReportOOMError();
> +                    goto done;
>                  }
> +                if (access(path, R_OK) == 0)
> +                    ret = 1;
> +                else if (errno == ENOENT)
> +                    ret = 0;
>              }
>          }
>      }
>   




More information about the libvir-list mailing list