[libvirt] [PATCH v3] libxl: add discard support to libxl_device_disk

Jim Fehlig jfehlig at suse.com
Wed Jul 9 17:16:45 UTC 2014


Olaf Hering wrote:
> Translate libvirt discard settings into libxl-4.5 discard settings.
>
> Signed-off-by: Olaf Hering <olaf at aepfle.de>
> ---
> v3:
>  passing discard= with old libxl is now a fatal error
> v2:
>  add cast to switch variable to let compiler check if the code handles
>  all enum values
>   

Thanks for addressing the comments.

>  src/libxl/libxl_conf.c | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 8eeaf82..538cfa4 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -715,6 +715,35 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>      return -1;
>  }
>  
> +static int
> +libxlDiskSetDiscard(libxl_device_disk *x_disk, int discard)
> +{
> +    if (!x_disk->readwrite)
> +        return 0;
> +#if defined(LIBXL_HAVE_LIBXL_DEVICE_DISK_DISCARD_ENABLE)
> +    switch ((enum virDomainDiskDiscard)discard) {
> +    case VIR_DOMAIN_DISK_DISCARD_DEFAULT:
> +    case VIR_DOMAIN_DISK_DISCARD_LAST:
> +        break;
> +    case VIR_DOMAIN_DISK_DISCARD_UNMAP:
> +        libxl_defbool_set(&x_disk->discard_enable, true);
> +        break;
> +    case VIR_DOMAIN_DISK_DISCARD_IGNORE:
> +        libxl_defbool_set(&x_disk->discard_enable, false);
> +        break;
> +    }
> +    return 0;
> +#else
> +    if (discard == VIR_DOMAIN_DISK_DISCARD_DEFAULT)
> +        return 0;
> +    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                   _("This version of libxenlight does not support "
> +                     "disk 'discard' option passing"));
>   

Fails 'make syntax-check', but otherwise ACK.  I squashed in the below
fix and pushed.

Regards,
Jim

diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 22ab902..0b4a0b5 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -736,7 +736,7 @@ libxlDiskSetDiscard(libxl_device_disk *x_disk, int
discard)
 #else
     if (discard == VIR_DOMAIN_DISK_DISCARD_DEFAULT)
         return 0;
-    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                    _("This version of libxenlight does not support "
                      "disk 'discard' option passing"));
     return -1;




More information about the libvir-list mailing list