mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
migration: Move the yank unregister of channel_close out
It's efficient, but hackish to call yank unregister calls in channel_close(), especially it'll be hard to debug when qemu crashed with some yank function leaked. Remove that hack, but instead explicitly unregister yank functions at the places where needed, they are: (on src) - migrate_fd_cleanup - postcopy_pause (on dst) - migration_incoming_state_destroy - postcopy_pause_incoming Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20210722175841.938739-6-peterx@redhat.com> Reviewed-by: Lukas Straub <lukasstraub2@web.de> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
c6ad5be7ae
commit
39675ffffb
5 changed files with 35 additions and 4 deletions
|
@ -14,6 +14,7 @@
|
|||
#include "qemu/yank.h"
|
||||
#include "io/channel-socket.h"
|
||||
#include "io/channel-tls.h"
|
||||
#include "qemu-file.h"
|
||||
|
||||
void migration_yank_iochannel(void *opaque)
|
||||
{
|
||||
|
@ -46,3 +47,16 @@ void migration_ioc_unregister_yank(QIOChannel *ioc)
|
|||
QIO_CHANNEL(ioc));
|
||||
}
|
||||
}
|
||||
|
||||
void migration_ioc_unregister_yank_from_file(QEMUFile *file)
|
||||
{
|
||||
QIOChannel *ioc = qemu_file_get_ioc(file);
|
||||
|
||||
if (ioc) {
|
||||
/*
|
||||
* For migration qemufiles, we'll always reach here. Though we'll skip
|
||||
* calls from e.g. savevm/loadvm as they don't use yank.
|
||||
*/
|
||||
migration_ioc_unregister_yank(ioc);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue