]> xenbits.xensource.com Git - libvirt.git/commitdiff
fix the detach-disk command when using Xen tap devices
authorDaniel Veillard <veillard@redhat.com>
Fri, 14 Dec 2007 15:38:02 +0000 (15:38 +0000)
committerDaniel Veillard <veillard@redhat.com>
Fri, 14 Dec 2007 15:38:02 +0000 (15:38 +0000)
* src/xs_internal.[ch]: patch from Saori Fukuta to fix the
  detach-disk command when using Xen tap devices.
* docs/libvir.html: typo fix from Jim Meyering
Daniel

ChangeLog
docs/libvir.html
src/xs_internal.c
src/xs_internal.h

index 2c8c750379546bc99983505f73ba884f98172fad..b9b3f9cfe53f82b342ab57a57e6f1d4e4aedc5e0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Dec 14 16:36:02 CET 2007 Daniel Veillard <veillard@redhat.com>
+
+       * src/xs_internal.[ch]: patch from Saori Fukuta to fix the
+         detach-disk command when using Xen tap devices.
+       * docs/libvir.html: typo fix from Jim Meyering
+
 Wed Dec 12 16:42:00 UTC 2007 Richard W.M. Jones <rjones@redhat.com>
 
        Fix virBufferEscapeString escaping of '<'
index f1bd74306943cb699f0f7afbae759ed6c9717bcb..5320b9e76915ea88ceb1738fa365a05a056e2d3c 100644 (file)
@@ -34,7 +34,7 @@ href="http://kvm.qumranet.com/">KVM</a> and
 <p>Here is the list of official releases, however since it is early on in the
 development of libvirt, it is preferable when possible to just use the <a
 href="downloads.html">CVS version or snapshot</a>, contact the mailing list
-and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p>
+and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progress.</p>
 
 
 <h3>0.3.3: Sep 30 2007</h3>
index 3995e3ebcfbdde153b97136589d00f5da3dfb69f..32e1bf2384d6e12f3291c7858182667b65d4fc78 100644 (file)
@@ -920,23 +920,43 @@ xenStoreDomainGetDiskID(virConnectPtr conn, int id, const char *dev) {
 
     snprintf(dir, sizeof(dir), "/local/domain/0/backend/vbd/%d", id);
     list = xs_directory(priv->xshandle, 0, dir, &num);
-    if (list == NULL)
-        return(NULL);
-    for (i = 0; i < num; i++) {
-        snprintf(path, sizeof(path), "%s/%s/%s", dir, list[i], "dev");
-        val = xs_read(priv->xshandle, 0, path, &len);
-        if (val == NULL)
-            break;
-        if ((devlen != len) || memcmp(val, dev, len)) {
-            free(val);
-        } else {
-            ret = strdup(list[i]);
-            free(val);
-            break;
+    if (list != NULL) {
+        for (i = 0; i < num; i++) {
+            snprintf(path, sizeof(path), "%s/%s/%s", dir, list[i], "dev");
+            val = xs_read(priv->xshandle, 0, path, &len);
+            if (val == NULL)
+                break;
+            if ((devlen != len) || memcmp(val, dev, len)) {
+                free (val);
+            } else {
+                ret = strdup(list[i]);
+                free (val);
+                free (list);
+                return (ret);
+            }
         }
+        free (list);
     }
-    free(list);
-    return(ret);
+    snprintf(dir, sizeof(dir), "/local/domain/0/backend/tap/%d", id);
+    list = xs_directory(priv->xshandle, 0, dir, &num);
+    if (list != NULL) {
+        for (i = 0; i < num; i++) {
+            snprintf(path, sizeof(path), "%s/%s/%s", dir, list[i], "dev");
+            val = xs_read(priv->xshandle, 0, path, &len);
+            if (val == NULL)
+                break;
+            if ((devlen != len) || memcmp(val, dev, len)) {
+                free (val);
+            } else {
+                ret = strdup(list[i]);
+                free (val);
+                free (list);
+                return (ret);
+            }
+        }
+        free (list);
+    }
+    return (NULL);
 }
 
 char *xenStoreDomainGetName(virConnectPtr conn,
index a17a9048485b022dd353cd3c1846725005df6a40..b0e7dacfd4b65983e7370308589fc256762727b5 100644 (file)
@@ -53,7 +53,7 @@ char *                xenStoreDomainGetNetworkID(virConnectPtr conn,
                                         const char *mac);
 char *         xenStoreDomainGetDiskID(virConnectPtr conn,
                                         int id,
-                                        const char *mac);
+                                        const char *dev);
 char *          xenStoreDomainGetName(virConnectPtr conn,
                                      int id);