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;
>>

Reply via email to