Olaf Hering wrote: > Translate libvirt discard settings into libxl-4.5 discard settings. > > Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> > --- > > default means leave decision to libxl. > Not sure if that is what "default" in libvirt terms really means. > It generally means hypervisor default, so deferring to libxl is the right thing to do. > > 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 b7fed7f..4cb062e 100644 > --- a/src/libxl/libxl_conf.c > +++ b/src/libxl/libxl_conf.c > @@ -713,6 +713,33 @@ libxlMakeDomBuildInfo(virDomainObjPtr vm, libxl_domain_config *d_config) > return -1; > } > > +static void > +libxlDiskSetDiscard(libxl_device_disk *x_disk, int discard) > +{ > + if (!x_disk->readwrite) > + return; > +#if defined(LIBXL_HAVE_LIBXL_DEVICE_DISK_DISCARD_ENABLE) > + switch (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; > + default: > Then you can remove 'default'. > + case VIR_DOMAIN_DISK_DISCARD_IGNORE: > + libxl_defbool_set(&x_disk->discard_enable, false); > + break; > + } > +#else > + if (discard == VIR_DOMAIN_DISK_DISCARD_DEFAULT) > + return; > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("This version of libxenlight does not support " > + "discard= option passing")); > An error would be reported here, but the overall libxlMakeDisk operation would succeed right? Shouldn't it fail if the user requests discard but it is not supported? Regards, Jim > +#endif > +} > + > + > int > libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) > { > @@ -827,6 +854,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); > /* 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; > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list