[libvirt] [PATCH 4/4] snapshot: drop dead parameters

Eric Blake eblake at redhat.com
Sat Oct 8 00:05:57 UTC 2011


The previous optimizations lead to some follow-on cleanups.

* src/conf/domain_conf.c (virDomainSnapshotForEachChild)
(virDomainSnapshotForEachDescendant): Drop dead parameter.
(virDomainSnapshotActOnDescendant)
(virDomainSnapshotObjListNumFrom)
(virDomainSnapshotObjListGetNamesFrom): Update callers.
* src/qemu/qemu_driver.c (qemuDomainSnapshotNumChildren)
(qemuDomainSnapshotListChildrenNames, qemuDomainSnapshotDelete):
Likewise.
* src/conf/domain_conf.h: Update prototypes.
---
 src/conf/domain_conf.c |   20 ++++++++------------
 src/conf/domain_conf.h |   11 ++---------
 src/qemu/qemu_driver.c |   12 +++++-------
 3 files changed, 15 insertions(+), 28 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e77257a..d52a79f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12192,7 +12192,6 @@ cleanup:
 }

 int virDomainSnapshotObjListGetNamesFrom(virDomainSnapshotObjPtr snapshot,
-                                         virDomainSnapshotObjListPtr snapshots,
                                          char **const names, int maxnames,
                                          unsigned int flags)
 {
@@ -12202,11 +12201,11 @@ int virDomainSnapshotObjListGetNamesFrom(virDomainSnapshotObjPtr snapshot,
     data.flags = flags & ~VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS;

     if (flags & VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS)
-        virDomainSnapshotForEachDescendant(snapshots, snapshot,
+        virDomainSnapshotForEachDescendant(snapshot,
                                            virDomainSnapshotObjListCopyNames,
                                            &data);
     else
-        virDomainSnapshotForEachChild(snapshots, snapshot,
+        virDomainSnapshotForEachChild(snapshot,
                                       virDomainSnapshotObjListCopyNames, &data);

     if (data.oom) {
@@ -12263,7 +12262,6 @@ int virDomainSnapshotObjListNum(virDomainSnapshotObjListPtr snapshots,

 int
 virDomainSnapshotObjListNumFrom(virDomainSnapshotObjPtr snapshot,
-                                virDomainSnapshotObjListPtr snapshots,
                                 unsigned int flags)
 {
     struct virDomainSnapshotNumData data = { 0, 0 };
@@ -12271,11 +12269,11 @@ virDomainSnapshotObjListNumFrom(virDomainSnapshotObjPtr snapshot,
     data.flags = flags & ~VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS;

     if (flags & VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS)
-        virDomainSnapshotForEachDescendant(snapshots, snapshot,
+        virDomainSnapshotForEachDescendant(snapshot,
                                            virDomainSnapshotObjListCount,
                                            &data);
     else if (data.flags)
-        virDomainSnapshotForEachChild(snapshots, snapshot,
+        virDomainSnapshotForEachChild(snapshot,
                                       virDomainSnapshotObjListCount, &data);
     else
         data.count = snapshot->nchildren;
@@ -12300,8 +12298,7 @@ void virDomainSnapshotObjListRemove(virDomainSnapshotObjListPtr snapshots,
  * other entries in snapshots.  Return the number of children
  * visited.  No particular ordering is guaranteed.  */
 int
-virDomainSnapshotForEachChild(virDomainSnapshotObjListPtr snapshots ATTRIBUTE_UNUSED,
-                              virDomainSnapshotObjPtr snapshot,
+virDomainSnapshotForEachChild(virDomainSnapshotObjPtr snapshot,
                               virHashIterator iter,
                               void *data)
 {
@@ -12331,15 +12328,14 @@ virDomainSnapshotActOnDescendant(void *payload,

     curr->number++;
     (curr->iter)(payload, name, curr->data);
-    virDomainSnapshotForEachDescendant(NULL, obj, curr->iter, curr->data);
+    virDomainSnapshotForEachDescendant(obj, curr->iter, curr->data);
 }

 /* Run iter(data) on all descendants of snapshot, while ignoring all
  * other entries in snapshots.  Return the number of descendants
  * visited.  No particular ordering is guaranteed.  */
 int
-virDomainSnapshotForEachDescendant(virDomainSnapshotObjListPtr snapshots ATTRIBUTE_UNUSED,
-                                   virDomainSnapshotObjPtr snapshot,
+virDomainSnapshotForEachDescendant(virDomainSnapshotObjPtr snapshot,
                                    virHashIterator iter,
                                    void *data)
 {
@@ -12348,7 +12344,7 @@ virDomainSnapshotForEachDescendant(virDomainSnapshotObjListPtr snapshots ATTRIBU
     act.number = 0;
     act.iter = iter;
     act.data = data;
-    virDomainSnapshotForEachChild(NULL, snapshot,
+    virDomainSnapshotForEachChild(snapshot,
                                   virDomainSnapshotActOnDescendant, &act);

     return act.number;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 9b3870a..ce93215 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1464,9 +1464,6 @@ struct _virDomainSnapshotObj {
     virDomainSnapshotObjPtr sibling; /* NULL if last child of parent */
     size_t nchildren;
     virDomainSnapshotObjPtr first_child; /* NULL if no children */
-
-    /* Internal use only */
-    int mark; /* Used in identifying descendents. */
 };

 typedef struct _virDomainSnapshotObjList virDomainSnapshotObjList;
@@ -1508,22 +1505,18 @@ int virDomainSnapshotObjListGetNames(virDomainSnapshotObjListPtr snapshots,
 int virDomainSnapshotObjListNum(virDomainSnapshotObjListPtr snapshots,
                                 unsigned int flags);
 int virDomainSnapshotObjListGetNamesFrom(virDomainSnapshotObjPtr snapshot,
-                                         virDomainSnapshotObjListPtr snapshots,
                                          char **const names, int maxnames,
                                          unsigned int flags);
 int virDomainSnapshotObjListNumFrom(virDomainSnapshotObjPtr snapshot,
-                                    virDomainSnapshotObjListPtr snapshots,
                                     unsigned int flags);
 virDomainSnapshotObjPtr virDomainSnapshotFindByName(const virDomainSnapshotObjListPtr snapshots,
                                                     const char *name);
 void virDomainSnapshotObjListRemove(virDomainSnapshotObjListPtr snapshots,
                                     virDomainSnapshotObjPtr snapshot);
-int virDomainSnapshotForEachChild(virDomainSnapshotObjListPtr snapshots,
-                                  virDomainSnapshotObjPtr snapshot,
+int virDomainSnapshotForEachChild(virDomainSnapshotObjPtr snapshot,
                                   virHashIterator iter,
                                   void *data);
-int virDomainSnapshotForEachDescendant(virDomainSnapshotObjListPtr snapshots,
-                                       virDomainSnapshotObjPtr snapshot,
+int virDomainSnapshotForEachDescendant(virDomainSnapshotObjPtr snapshot,
                                        virHashIterator iter,
                                        void *data);
 int virDomainSnapshotUpdateRelations(virDomainSnapshotObjListPtr snapshots);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 501a3fc..7a134e3 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9502,8 +9502,7 @@ qemuDomainSnapshotListChildrenNames(virDomainSnapshotPtr snapshot,
         goto cleanup;
     }

-    n = virDomainSnapshotObjListGetNamesFrom(snap, &vm->snapshots,
-                                             names, nameslen, flags);
+    n = virDomainSnapshotObjListGetNamesFrom(snap, names, nameslen, flags);

 cleanup:
     if (vm)
@@ -9546,7 +9545,7 @@ qemuDomainSnapshotNumChildren(virDomainSnapshotPtr snapshot,
      * VIR_DOMAIN_SNAPSHOT_LIST_METADATA makes no difference to our
      * answer.  */

-    n = virDomainSnapshotObjListNumFrom(snap, &vm->snapshots, flags);
+    n = virDomainSnapshotObjListNumFrom(snap, flags);

 cleanup:
     if (vm)
@@ -10163,7 +10162,7 @@ static int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
             snap->def->state == VIR_DOMAIN_DISK_SNAPSHOT)
             external++;
         if (flags & VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN)
-            virDomainSnapshotForEachDescendant(&vm->snapshots, snap,
+            virDomainSnapshotForEachDescendant(snap,
                                                qemuDomainSnapshotCountExternal,
                                                &external);
         if (external) {
@@ -10184,8 +10183,7 @@ static int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
         rem.metadata_only = metadata_only;
         rem.err = 0;
         rem.current = false;
-        virDomainSnapshotForEachDescendant(&vm->snapshots,
-                                           snap,
+        virDomainSnapshotForEachDescendant(snap,
                                            qemuDomainSnapshotDiscardAll,
                                            &rem);
         if (rem.err < 0)
@@ -10210,7 +10208,7 @@ static int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
         rep.vm = vm;
         rep.err = 0;
         rep.last = NULL;
-        virDomainSnapshotForEachChild(&vm->snapshots, snap,
+        virDomainSnapshotForEachChild(snap,
                                       qemuDomainSnapshotReparentChildren,
                                       &rep);
         if (rep.err < 0)
-- 
1.7.4.4




More information about the libvir-list mailing list