On Tue, Jul 19, 2011 at 11:48:22PM +0200, Jan Kiszka wrote: > On 2011-07-19 13:46, Michael Tokarev wrote: > > If we do, it results in double monitor_resume() (second being called > > from migrate_fd_cleanup() anyway) and monitor suspend count becoming > > negative. > > > > Cc'ing people from `git blame' list for the lines in question: the > > change fixes the problem but I'm not sure what the original intention > > of this code was in this place. Unfortunately noone replied to two > > my attempts to raise this issue. > > > > Signed-Off-By: Michael Tokarev <m...@tls.msk.ru> > > --- > > migration.c | 3 --- > > 1 files changed, 0 insertions(+), 3 deletions(-) > > > > diff --git a/migration.c b/migration.c > > index af3a1f2..115588c 100644 > > --- a/migration.c > > +++ b/migration.c > > @@ -330,9 +330,6 @@ 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); > > } > > Looks reasonable to me, but Marcelo should comment on this, specifically > which scenario once required the resume. > > Jan
If the monitor was suspended (migrate without -d), then this path must resume. Should record that somewhere and check here.