提交 b67b8c3a 编写于 作者: A Ashijeet Acharya 提交者: Dr. David Alan Gilbert

migration: Fail migration blocker for --only-migratable

migrate_add_blocker should rightly fail if the '--only-migratable'
option was specified and the device in use should not be able to
perform the action which results in an unmigratable VM.

Make migrate_add_blocker return -EACCES in this case.
Signed-off-by: NAshijeet Acharya <ashijeetacharya@gmail.com>
Message-Id: <1484566314-3987-6-git-send-email-ashijeetacharya@gmail.com>
Reviewed-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: NJuan Quintela <quintela@redhat.com>
Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
上级 fe44dc91
...@@ -291,7 +291,7 @@ int ram_postcopy_incoming_init(MigrationIncomingState *mis); ...@@ -291,7 +291,7 @@ int ram_postcopy_incoming_init(MigrationIncomingState *mis);
* *
* @errp - [out] The reason (if any) we cannot block migration right now. * @errp - [out] The reason (if any) we cannot block migration right now.
* *
* @returns - 0 on success, -EBUSY on failure, with errp set. * @returns - 0 on success, -EBUSY/-EACCES on failure, with errp set.
*/ */
int migrate_add_blocker(Error *reason, Error **errp); int migrate_add_blocker(Error *reason, Error **errp);
......
...@@ -1113,6 +1113,13 @@ static GSList *migration_blockers; ...@@ -1113,6 +1113,13 @@ static GSList *migration_blockers;
int migrate_add_blocker(Error *reason, Error **errp) int migrate_add_blocker(Error *reason, Error **errp)
{ {
if (only_migratable) {
error_propagate(errp, error_copy(reason));
error_prepend(errp, "disallowing migration blocker "
"(--only_migratable) for: ");
return -EACCES;
}
if (migration_is_idle(NULL)) { if (migration_is_idle(NULL)) {
migration_blockers = g_slist_prepend(migration_blockers, reason); migration_blockers = g_slist_prepend(migration_blockers, reason);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册