On Mon, Oct 10, 2011 at 05:32:19PM -0600, Eric Blake wrote:
On 10/09/2011 09:29 PM, Daniel Veillard wrote:
>On Fri, Sep 30, 2011 at 05:09:29PM -0600, Eric Blake wrote:
>>Not too hard to wire up. The trickiest part is realizing that
>>listing children of a snapshot cannot use SNAPSHOT_LIST_ROOTS,
>>and that we overloaded that bit to also mean SNAPSHOT_LIST_DESCENDANTS;
>>we use that bit to decide which iteration to use, but don't want
>>the existing counting/listing functions to see that bit.
>>
>>+static int
>>+qemuDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
>>+ unsigned int flags)
>>+{
>>+ struct qemud_driver *driver = snapshot->domain->conn->privateData;
>
> ACK,
I've now pushed 1-7.
thanks !
>I would tend to be a bit more defensive myself byt not
dereferencing 3
>layers of pointer as the first instructions in the function, but
>if you're confident the structures can't be missing :-)
Yes, src/libvirt.c already validated that snapshot,
snapshot->domain, and snapshot->domain->conn are all correct and
non-NULL. We do this same sort of 3-level validation in several
other APIs, relying on libvirt.c to have filtered out invalid
objects in advance of calling the hypervisor callback.
okay :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/