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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list