[PATCH] virsh: Fix return code for dump

Michal Privoznik mprivozn at redhat.com
Mon May 4 12:19:38 UTC 2020


On 5/4/20 2:09 PM, Andrea Bolognani wrote:
> On Mon, 2020-05-04 at 09:48 +0000, Xuyandong (Yandong Xu) wrote:
>> +++ b/tools/virsh-domain.c
>> @@ -5522,7 +5522,6 @@ static bool
>>   cmdDump(vshControl *ctl, const vshCmd *cmd)
>>   {
>>       virDomainPtr dom;
>> -    bool ret = false;
>>       bool verbose = false;
>>       const char *name = NULL;
>>       const char *to = NULL;
>> @@ -5556,12 +5555,12 @@ cmdDump(vshControl *ctl, const vshCmd *cmd)
>>   
>>       virThreadJoin(&workerThread);
>>   
>> -    if (!ret)
>> +    if (!data.ret)
>>           vshPrintExtra(ctl, _("\nDomain %s dumped to %s\n"), name, to);
>>   
>>    cleanup:
>>       virshDomainFree(dom);
>> -    return !ret;
>> +    return !data.ret;
>>   }
> 
> This is in the same vein as fbc4e81a36d1, and I think we should
> definitely squeeze it in before release, so that's a
> 
>    Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> 
> from me. Dan, what do you think?
> 

I'm in the middle of review too. But I find !data.ret a bit confusing. 
The function is returning a boolean and not a pointer or an int. So how 
about 'return data.ret != 0'? I know John was against using 'if (!int)' 
and it kind of makes sense.

Or even better, we can use our regular pattern and keep @ret, and do 
something like:

if (data.ret < 0)
   goto cleanup;

vshPrintExtra()
ret = true;
...
return ret;


This is something that is perfectly fixable by committer, so no need to 
resend. I too agree that this is something that needs fixing and the 
sooner we fix it the better.

Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Michal




More information about the libvir-list mailing list