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: Ashijeet Acharya <ashijeetacharya@gmail.com> Message-Id: <1484566314-3987-6-git-send-email-ashijeetacharya@gmail.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
fe44dc9180
commit
b67b8c3a9d
|
@ -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;
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue