migration: Clarify that {load, save}_cleanup handlers can run without setup

It's possible for {load,save}_cleanup SaveVMHandlers to get called without
the corresponding {load,save}_setup handler being called first.

One such example is if {load,save}_setup handler of a proceeding device
returns error.
In this case the migration core cleanup code will call all corresponding
cleanup handlers, even for these devices which haven't had its setup
handler called.

Since this behavior can generate some surprises let's clearly document it
in these SaveVMHandlers description.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Link: https://lore.kernel.org/qemu-devel/991636623fb780350f493b5f045cb17e13ce4c0f.1741124640.git.maciej.szmigiero@oracle.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
Maciej S. Szmigiero 2025-03-04 23:03:28 +01:00 committed by Cédric Le Goater
parent 8d8a30d1ac
commit d3237d0d85

View file

@ -69,7 +69,9 @@ typedef struct SaveVMHandlers {
/**
* @save_cleanup
*
* Uninitializes the data structures on the source
* Uninitializes the data structures on the source.
* Note that this handler can be called even if save_setup
* wasn't called earlier.
*
* @opaque: data pointer passed to register_savevm_live()
*/
@ -244,6 +246,8 @@ typedef struct SaveVMHandlers {
* @load_cleanup
*
* Uninitializes the data structures on the destination.
* Note that this handler can be called even if load_setup
* wasn't called earlier.
*
* @opaque: data pointer passed to register_savevm_live()
*