[libvirt] [PATCH v2 1/2] qemu: make attaching disk partition to VM illegal
Daniel P. Berrangé
berrange at redhat.com
Wed Oct 2 11:11:25 UTC 2019
On Wed, Oct 02, 2019 at 10:45:28AM +0200, Michal Privoznik wrote:
> On 9/30/19 3:41 PM, Pavel Mores wrote:
> > The way in which the qemu driver generates aliases for disks involves
> > ignoring the partition number part of a target dev name. This means that
> > all partitions of a block device and the device itself all end up with the
> > same alias. If multiple such disks are specified in XML, the resulting
> > name clash makes qemu invocation fail.
> >
> > Since attaching partitions to qemu VMs doesn't seem to make much sense
> > anyway, disallow partitions in target specifications altogether.
> >
> > https://bugzilla.redhat.com/show_bug.cgi?id=1346265
> >
> > Signed-off-by: Pavel Mores <pmores at redhat.com>
> > ---
> > src/qemu/qemu_domain.c | 15 +++++++++++
> > .../disk-attaching-partition-nosupport.xml | 27 +++++++++++++++++++
> > tests/qemuxml2argvtest.c | 1 +
> > 3 files changed, 43 insertions(+)
> > create mode 100644 tests/qemuxml2argvdata/disk-attaching-partition-nosupport.xml
> >
> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index e8e895d9aa..545c985f40 100644
> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -5880,6 +5880,8 @@ qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk,
> > {
> > const char *driverName = virDomainDiskGetDriver(disk);
> > virStorageSourcePtr n;
> > + int idx;
> > + int partition;
> > if (disk->src->shared && !disk->src->readonly &&
> > !qemuBlockStorageSourceSupportsConcurrentAccess(disk->src)) {
> > @@ -5948,6 +5950,19 @@ qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk,
> > return -1;
> > }
> > + if (virDiskNameParse(disk->dst, &idx, &partition) < 0) {
> > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > + _("invalid disk target '%s'"), disk->dst);
> > + return -1;
> > + }
> > +
> > + if (partition != 0) {
> > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > + _("can't attach disk partition '%s', please attach whole disk instead"),
> > + disk->dst);
>
> Hopefully it's not too late, but this error message and the commit title
> neither don't look okay. You can attach /dev/sda1 to a domain, but we don't
> want you to put "sda1" into the disk target, we want you to name it just
> "sda". So perhaps "Refuse partitions in disk targets" as commit tile and
> "invalid disk target '%s', partitions can't appear in disk targets" for the
> error message looks better?
>
> The patch looks goot otherwise. Currently we are in a freeze, but since this
> is a bug fix it can go in. Objections anybody? I volunteer to merge it.
I think it is fine for freeze, so go ahead with your proposed fix.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list