mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 22:55:23 +00:00
xen: Return tap2 for tap2 disks
For some versions of Xen the difference between "tap" and "tap2" is important. When converting back from xen-sxpr to libvirt-xml, that information is lost, which breaks re-defining the domain using that data. Explicitly return "tap2" for disks defined as "device/tap2". Signed-off-by: Philipp Hahn <hahn@univention.de>
This commit is contained in:
parent
c2969ec7ae
commit
c490b469ce
@ -397,14 +397,20 @@ xenParseSxprDisks(virDomainDefPtr def,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VIR_ALLOC_N(disk->driverName, (offset-src)+1) < 0)
|
if (sexpr_lookup(node, "device/tap2") &&
|
||||||
goto no_memory;
|
STRPREFIX(src, "tap:")) {
|
||||||
if (virStrncpy(disk->driverName, src, offset-src,
|
if (!(disk->driverName = strdup("tap2")))
|
||||||
(offset-src)+1) == NULL) {
|
goto no_memory;
|
||||||
XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
|
} else {
|
||||||
_("Driver name %s too big for destination"),
|
if (VIR_ALLOC_N(disk->driverName, (offset-src)+1) < 0)
|
||||||
src);
|
goto no_memory;
|
||||||
goto error;
|
if (virStrncpy(disk->driverName, src, offset-src,
|
||||||
|
(offset-src)+1) == NULL) {
|
||||||
|
XENXS_ERROR(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
_("Driver name %s too big for destination"),
|
||||||
|
src);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
src = offset + 1;
|
src = offset + 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user