2011/2/23 Juan Quintela <quint...@redhat.com>: > We are also calling to migrate_fd_cleanup(), but notice that it is the > right thing to do. > > Signed-off-by: Juan Quintela <quint...@redhat.com> > --- > migration.c | 6 +----- > 1 files changed, 1 insertions(+), 5 deletions(-) > > diff --git a/migration.c b/migration.c > index ab98664..3983257 100644 > --- a/migration.c > +++ b/migration.c > @@ -351,11 +351,7 @@ static ssize_t migrate_fd_put_buffer(void *opaque, const > void *data, size_t size > if (ret == -EAGAIN) { > qemu_set_fd_handler2(s->fd, NULL, NULL, migrate_fd_put_notify, s); > } else if (ret < 0) { > - if (s->mon) { > - monitor_resume(s->mon); > - } > - s->state = MIG_STATE_ERROR; > - notifier_list_notify(&migration_state_notifiers); > + migrate_fd_error(s); > }
Are you sure about this? migrate_fd_error may call qemu_fclose through migrate_fd_cleanup, but the caller of migrate_fd_put_buffer gets called by buffered_file that sits under qemu file. In my previous posting, http://permalink.gmane.org/gmane.comp.emulators.qemu/94688 I thought migrate_fd_put_buffer should just return error, and let the original caller (migrate_fd_put_notify or any) to actually call migrate_fd_error. Thanks, Yoshi > > return ret; > -- > 1.7.4 > > >