On Thu, Mar 25, 2010 at 11:47:33AM +0100, Daniel Veillard wrote: > On Wed, Mar 24, 2010 at 11:46:24AM +0000, Daniel P. Berrange wrote: > > To allow the new virDomainUpdateDeviceFlags() API to be universally > > used with all drivers, this patch adds an impl to all the current > > drivers which support CDROM or Floppy disk media change via the > > current virDomainAttachDeviceFlags API > > > > * src/qemu/qemu_driver.c, src/vbox/vbox_tmpl.c, > > src/xen/proxy_internal.c, src/xen/xen_driver.c, > > src/xen/xend_internal.c: Implement media change via the > > virDomainUpdateDeviceFlags API > > * src/xen/xen_driver.h, src/xen/xen_hypervisor.c, > > src/xen/xen_inotify.c, src/xen/xm_internal.c, > > src/xen/xs_internal.c: Stubs for Xen driver entry points > [...] > > +static int qemuDomainUpdateDeviceFlags(virDomainPtr dom, > > + const char *xml, > > + unsigned int flags) > > +{ > [...] > > + switch (dev->data.disk->device) { > > + case VIR_DOMAIN_DISK_DEVICE_CDROM: > > + case VIR_DOMAIN_DISK_DEVICE_FLOPPY: > > + ret = qemudDomainChangeEjectableMedia(driver, vm, dev->data.disk); > > + if (ret == 0) > > + dev->data.disk = NULL; > > + break; > > + > > + > > + default: > > + qemuReportError(VIR_ERR_NO_SUPPORT, > > + _("disk bus '%s' cannot be updated."), > > + virDomainDiskBusTypeToString(dev->data.disk->bus)); > > + break; > > + } > > + > > + if (ret != 0 && cgroup) { > > + virCgroupDenyDevicePath(cgroup, > > + dev->data.disk->src); > > + } > > Hum ... I got a bit lost there, qemudDomainChangeEjectableMedia only > returns -1 on error or 0 on success. But failure to change may mean that > the previous data is still being used, shouldn't we check that the > old and new data.disk->src are different before denying access ? Oh, interesting - this code was only ever about reverting the ACL on the new media, upon failure. There is n code anywhere that rverts the ACL on the old media - this is broken in the existing change media method too. So I should fix both of them with another patch. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list