On 03/31/2014 03:06 AM, Ján Tomko wrote:
> On 03/31/2014 02:42 AM, Cole Robinson wrote:
>> VolOpen notifies the user of a potentially non-fatal failure by
>> returning -2 and logging a VIR_WARN or VIR_INFO. Unfortunately most
>> callers treat -2 as fatal but don't actually report any message with
>> the error APIs.
>>
>> Change VolOpen to always report an error, and fix the one caller that
>> was actually handling -2 to explicitly unset the raised error. Tweak
>> some of the other call sites to properly propagate the newly raised
>> error.
>> ---
>> Unfortunately this makes libvirtd startup pretty noisy on stderr, since
>> logging is done at ErrorReport time, even if the error is never dispatched,
>> and every directory pool will try to probe the illegal volumes $target/. and
>> $target/.. . Suggestions welcome
>>
> 
> I think volOpen should report errors in all cases only if
> VIR_STORAGE_VOL_OPEN_ERROR is set (not only because we can't really unlog 
> errors)
> 
> Every caller expect for virStorageBackendProbeTarget (where
> virStorageBackendFileSystemRefresh handles -2) has this flag set.

Agreed - either use flags to control whether to emit errors (so that the
one caller that cared about a -2 return uses different flags than the
others), or change the signature [or even both actions - VOL_OPEN_ERROR
flag AND a changed signature].  Right now, we have:

return value = -1, -2, or fd

but a signature more conducive to conditional error reporting might be:

caller passes int *fd
return value -1 (error issued), 0 (*fd == -1, but no error issued), or 1
(*fd >= 0)

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to