mirror of https://gitee.com/openkylin/libvirt.git
qemu: Prohibit migration of guests with host devices
Explicitly raising a nice error in the case user tries to migrate a guest with assigned host devices is much better than waiting for a mysterious error with no clue for the reason.
This commit is contained in:
parent
a4d9d98fb0
commit
f93924f465
|
@ -10380,6 +10380,19 @@ static void qemuDomainEventQueue(struct qemud_driver *driver,
|
||||||
|
|
||||||
/* Migration support. */
|
/* Migration support. */
|
||||||
|
|
||||||
|
static bool ATTRIBUTE_NONNULL(1)
|
||||||
|
qemuDomainIsMigratable(virDomainDefPtr def)
|
||||||
|
{
|
||||||
|
if (def->nhostdevs > 0) {
|
||||||
|
qemuReportError(VIR_ERR_OPERATION_INVALID,
|
||||||
|
_("Domain with assigned host devices cannot be migrated"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Tunnelled migration stream support */
|
/* Tunnelled migration stream support */
|
||||||
struct qemuStreamMigFile {
|
struct qemuStreamMigFile {
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -10709,6 +10722,9 @@ qemudDomainMigratePrepareTunnel(virConnectPtr dconn,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!qemuDomainIsMigratable(def))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
/* Target domain name, maybe renamed. */
|
/* Target domain name, maybe renamed. */
|
||||||
if (dname) {
|
if (dname) {
|
||||||
VIR_FREE(def->name);
|
VIR_FREE(def->name);
|
||||||
|
@ -10976,6 +10992,9 @@ qemudDomainMigratePrepare2 (virConnectPtr dconn,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!qemuDomainIsMigratable(def))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
/* Target domain name, maybe renamed. */
|
/* Target domain name, maybe renamed. */
|
||||||
if (dname) {
|
if (dname) {
|
||||||
VIR_FREE(def->name);
|
VIR_FREE(def->name);
|
||||||
|
|
Loading…
Reference in New Issue