Anthony Liguori <anth...@codemonkey.ws> wrote: > On 10/11/2011 05:00 AM, Juan Quintela wrote: >> Signed-off-by: Juan Quintela<quint...@redhat.com> > > The original intention of returning zero was to force a quick finish > of the migration. > > I think this code makes things more brittle because now if you're not > doing error checking in the throttling path, you'll just pause the > migration forever instead of fast forwarding to a point where you're > actually checking for errors.
This is the only caller: while (!qemu_file_rate_limit(f)) { int bytes_sent; bytes_sent = ram_save_block(f); bytes_transferred += bytes_sent; if (bytes_sent == 0) { /* no more blocks */ break; } } The error that I was finding is that whe get one error, we stay on that loop a lot of time. This change just made the error be discovered instantanously. Later, Juan. > > Regards, > > Anthony Liguori > >> --- >> buffered_file.c | 6 +++--- >> 1 files changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/buffered_file.c b/buffered_file.c >> index 486af57..bcdf04f 100644 >> --- a/buffered_file.c >> +++ b/buffered_file.c >> @@ -193,9 +193,9 @@ static int buffered_rate_limit(void *opaque) >> { >> QEMUFileBuffered *s = opaque; >> >> - if (s->has_error) >> - return 0; >> - >> + if (s->has_error) { >> + return 1; >> + } >> if (s->freeze_output) >> return 1; >>