[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] tools/libxc: fix errno handling for HVM in xc_domain_save



On Thu, 2014-03-13 at 18:34 +0100, Olaf Hering wrote:
> The previous patch ("tools/libxc: pass errno to callers of
> xc_domain_save") did not jump to the proper label if the domU is HVM.
> 
> Also make it clearer what "out" and "out_rc" are supposed to mean:
> label "out" is for failure case, it expects errno to be set.
> label "out_rc" is for success case, it preserves the initial errno for
> the caller.

I wish you hadn't done this bit, since now I can't just throw the fix in
as I need to think about it harder, the changes are certainly
non-obvious.

> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> ---
>  tools/libxc/xc_domain_save.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
> index 9f96bb7..5a50c5c 100644
> --- a/tools/libxc/xc_domain_save.c
> +++ b/tools/libxc/xc_domain_save.c
> @@ -1837,7 +1837,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, 
> uint32_t dom, uint32_t max_iter
>          
>          /* HVM guests are done now */
>          errno = 0;
> -        goto out;
> +        goto out_rc;
>      }
>  
>      /* PV guests only from now on */
> @@ -2037,13 +2037,13 @@ int xc_domain_save(xc_interface *xch, int io_fd, 
> uint32_t dom, uint32_t max_iter
>      }
>  
>      /* Success! */
> -    rc = errno = 0;
> +    errno = 0;
>      goto out_rc;
>  
>   out:
> -    rc = errno;
> -    assert(rc);
> +    assert(errno);
>   out_rc:
> +    rc = errno;
>      completed = 1;
>  
>      if ( !rc && callbacks->postcopy )
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.