Re: [PATCH v2] libxl: add discard support to libxl_device_disk

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

 



On Mon, Jul 07, 2014 at 04:05:34PM +0200, Olaf Hering wrote:
> Translate libvirt discard settings into libxl-4.5 discard settings.
> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> ---
> v2:
>  add cast to switch variable to let compiler check if the code handles
>  all enum values
> 
>  src/libxl/libxl_conf.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
> index 8eeaf82..bb9b53d 100644
> --- a/src/libxl/libxl_conf.c
> +++ b/src/libxl/libxl_conf.c
> @@ -715,6 +715,33 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
>      return -1;
>  }
>  
> +static void

s/void/int/

> +libxlDiskSetDiscard(libxl_device_disk *x_disk, int discard)
> +{
> +    if (!x_disk->readwrite)
> +        return;
> +#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;
> +    }

Add 'return 0'

> +#else
> +    if (discard == VIR_DOMAIN_DISK_DISCARD_DEFAULT)
> +        return;

Change to 'return 0'

> +    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                   _("This version of libxenlight does not support "
> +                     "discard= option passing"));

I'd suggest  s/discard= option passing/disk 'discard' option/
and add 'return -1' here

> +#endif
> +}
> +
> +
>  int
>  libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
>  {
> @@ -829,6 +856,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
>      x_disk->removable = 1;
>      x_disk->readwrite = !l_disk->readonly;
>      x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
> +    libxlDiskSetDiscard(x_disk, l_disk->discard);

   if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
        return -1;

>      /* An empty CDROM must have the empty format, otherwise libxl fails. */
>      if (x_disk->is_cdrom && !x_disk->pdev_path)
>          x_disk->format = LIBXL_DISK_FORMAT_EMPTY;

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]