[...]

>>      if (VIR_ALLOC_N(info_ret, niothreads) < 0)
>> -        goto endjob;
>> +        goto cleanup;
>>  
>>      for (i = 0; i < niothreads; i++) {
>>          virBitmapPtr map = NULL;
>>  
>>          if (VIR_ALLOC(info_ret[i]) < 0)
>> -            goto endjob;
>> +            goto cleanup;
>>          info_ret[i]->iothread_id = iothreads[i]->iothread_id;
>>  
>>          if (!(map = virProcessGetAffinity(iothreads[i]->thread_id)))
>> -            goto endjob;
>> +            goto cleanup;
> 
> I don't think this is a good idea. GetAffinity should be inside job too.
> SetAffinity call inside PinIOThread is inside one.
> Probably doesn't hurt us right now since the domain object is locked
> here, but regardless I think it should be inside a job.
> 
> The split into two functions looks okay.
> 

OK - I'll move the job logic back inside here and just have the Mon
logic do the magic fetch.

I was attempting to use a mix of the Block and Interface logic and
missed the detail regarding it being run in a job 0-).

Thanks!

John

>>  
>>          if (virBitmapToData(map, &info_ret[i]->cpumap,
>>                              &info_ret[i]->cpumaplen) < 0) {
>>              virBitmapFree(map);
>> -            goto endjob;
>> +            goto cleanup;
>>          }
>>          virBitmapFree(map);
>>      }
>>  
>> -    *info = info_ret;
>> -    info_ret = NULL;
>> +    VIR_STEAL_PTR(*info, info_ret);
>>      ret = niothreads;
>>  
>> - endjob:
>> -    qemuDomainObjEndJob(driver, vm);
>> -
>>   cleanup:
>>      if (info_ret) {
>>          for (i = 0; i < niothreads; i++)
>>
> 
> Michal
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to