migration: simplify blockers
commitc8a7fc5179c649eed1d4286776a23e8a1a183cdc
authorSteve Sistare <steven.sistare@oracle.com>
Wed, 18 Oct 2023 13:03:36 +0000 (18 06:03 -0700)
committerJuan Quintela <quintela@redhat.com>
Fri, 20 Oct 2023 06:51:41 +0000 (20 08:51 +0200)
treec5fb90795cb604c07815f6c4321e33ab93706cd3
parent04131e00097c5b85f96af6a66b1c009446c90ec1
migration: simplify blockers

Modify migrate_add_blocker and migrate_del_blocker to take an Error **
reason.  This allows migration to own the Error object, so that if
an error occurs in migrate_add_blocker, migration code can free the Error
and clear the client handle, simplifying client code.  It also simplifies
the migrate_del_blocker call site.

In addition, this is a pre-requisite for a proposed future patch that would
add a mode argument to migration requests to support live update, and
maintain a list of blockers for each mode.  A blocker may apply to a single
mode or to multiple modes, and passing Error** will allow one Error object
to be registered for multiple modes.

No functional change.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Tested-by: Michael Galaxy <mgalaxy@akamai.com>
Reviewed-by: Michael Galaxy <mgalaxy@akamai.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <1697634216-84215-1-git-send-email-steven.sistare@oracle.com>
33 files changed:
backends/tpm/tpm_emulator.c
block/parallels.c
block/qcow.c
block/vdi.c
block/vhdx.c
block/vmdk.c
block/vpc.c
block/vvfat.c
dump/dump.c
hw/9pfs/9p.c
hw/display/virtio-gpu-base.c
hw/intc/arm_gic_kvm.c
hw/intc/arm_gicv3_its_kvm.c
hw/intc/arm_gicv3_kvm.c
hw/misc/ivshmem.c
hw/ppc/pef.c
hw/ppc/spapr.c
hw/ppc/spapr_events.c
hw/ppc/spapr_rtas.c
hw/remote/proxy.c
hw/s390x/s390-virtio-ccw.c
hw/scsi/vhost-scsi.c
hw/vfio/common.c
hw/vfio/migration.c
hw/virtio/vhost.c
include/migration/blocker.h
migration/migration.c
stubs/migr-blocker.c
target/i386/kvm/kvm.c
target/i386/nvmm/nvmm-all.c
target/i386/sev.c
target/i386/whpx/whpx-all.c
ui/vdagent.c